我是SQL新手。 我有3张桌子,如下所示:
表客户端:具有其姓氏和名字,完整地址的客户端列表 表格产品:在网站上发送的商品列表,其中包含商品名称,制造国家和价格 表操作:客户完成的所有交易以及交易时间的列表。
所需的输出
获取日期为2018年每个国家/地区的所有客户产生的收入,并按收入最高的顺序排序。
答案 0 :(得分:0)
可以执行以下操作(假设事务表具有商品名称,产品表具有带有日期数据类型的日期字段):
select
a.client,
sum(c.price) as revenue
from client as a
inner join actions as b
on a.client = b.client
inner join produit c
on c.article = b.article
where year(c.date) = '2018'
group by
a.client
order by
sum(c.price);
答案 1 :(得分:0)
如果您要包含国家/地区,首先查看最高收入,并使用ANSI函数作为年份,则应该可以使用。
SELECT c.client_id,
c.first_name,
c.last_name,
p.country,
SUM(a.amount) amount
FROM client c
JOIN actions a ON c.client_id = a.client_id
JOIN produit p ON a.article_id = p.article_id
WHERE EXTRACT(YEAR FROM a.transaction_date) = '2018'
GROUP BY c.client_id,
c.first_name,
c.last_name,
p.country
ORDER BY SUM(a.amount) DESC;