SQL分组依据(计数、求和)

SQL分组依据(计数、求和),sql,oracle,Sql,Oracle,您好,我需要关于SQL a的帮助。我有这个表 我需要这个结果 谢谢你的关注和回答 select to_char(r.date,'yyyy') YEAR, sum(1), sum(r.cafe) cafe, sum(r.drink) drink, sum(r.tea) tea from ucet a join drinks r on a.IDT=r.IDT join feat ce on a.IDT=ce.IDT join dance c on a.ID= c.ID group by t

您好,我需要关于SQL a的帮助。我有这个表

我需要这个结果

谢谢你的关注和回答

select 
to_char(r.date,'yyyy') YEAR,
sum(1),
sum(r.cafe) cafe,
sum(r.drink) drink,
sum(r.tea) tea
from ucet a
join  drinks r on a.IDT=r.IDT
join feat ce on a.IDT=ce.IDT
join dance c on a.ID= c.ID

group by to_char(r.date,'yyyy')

您可以按如下方式使用总和和分组:

SELECT
 DISTINCT YEAR(r.date) year,
 COUNT(DISTINCT(number)) number,
 SUM(r.cafe) cafe,
 SUM(r.drink) drink,
 SUM(r.tea) tea
FROM drinks r
JOIN ucet a on a.IDT = r.IDT
GROUP BY YEAR(r.date)

还请记住,在许多RDBMS系统中,日期是数据类型的保留字,因此我建议将列命名为更合适的名称,避免保留字。

您尝试了什么?StackOverflow不是代码编写服务。此外,请以格式化文本而不是图片的形式发布您的数据。您需要的内容很清楚。但你们在写询问时面临的问题还不清楚吗。这里有一个网站开始练习你的sql。这是非常基本的东西,网上有大量可用的资料-请做一些研究并回答你自己的问题。我对代码有问题,因为我不能用求和来表示数字,我不知道我能用什么,所以结果是正确的。我必须用左函数吗?谢谢你的回答抱歉,刚才注意到你在使用plsql-我会检查我的回答,它不能按我的意愿工作。因为。列数表示一年中的次数。11111是2015年的1次,2016年的1次。。。。。。22222是2015年的1次,2016年的1次。所以2015年加起来是2个数字,2016年是2个number@dado我不知道联接表中有哪些数据,以及这些数据在查询中的关系。看起来您只是从饮料表中获取数据,或者(r)如果这是正确的,那么您可以简单地删除ucet表的连接,这将使您获得所需的分组。我怀疑您的ucet表导致行重复。我已经更新了上面的脚本,只使用饮料表。所以我使用带有“number”列的表,因为它是“ID_of_person”,我想说的是,2016年我的酒吧里来了两个人,2015年也来了两个人