Sql 按分组统计列中唯一值的出现次数(&A);在结果中引入其他列而不分组

Sql 按分组统计列中唯一值的出现次数(&A);在结果中引入其他列而不分组,sql,Sql,我正在查询SQL数据库,以确定取消日期范围为的预订取消表中出现客户ID的次数: SELECT CustID ,COUNT(*) as Occurance FROM [Test].[dbo].[vwBookingCancelletion] WHERE [Cancellation Date] between '2018-12-01' and '2019-12-31' GROUP BY CustID ORDER BY occurance desc 我想要实现的输出如下: 我当前

我正在查询SQL数据库,以确定取消日期范围为的预订取消表中出现客户ID的次数:

SELECT CustID
      ,COUNT(*) as Occurance

FROM [Test].[dbo].[vwBookingCancelletion]

WHERE [Cancellation Date] between '2018-12-01' and '2019-12-31'

GROUP BY CustID

ORDER BY occurance desc
我想要实现的输出如下:

我当前的查询确实提供了正确的out put,但当我尝试在select语句中添加其他列时,我还必须将其添加到导致错误输出的组中

我一直在尝试子查询(边输入边学习),但没有任何成功,在SE上也很少有其他解决方案


任何帮助都将不胜感激

您可以这样做:

select a.*, Occurance
FROM [Test] a inner join
(
       SELECT CustID
      ,COUNT(*) as Occurance
       FROM [Test].[dbo].[vwBookingCancelletion]
       WHERE [Cancellation Date] between '2018-12-01' and '2019-12-31'
       GROUP BY CustID
)b on a.CustID = b.CustID

你可以这样做:

select a.*, Occurance
FROM [Test] a inner join
(
       SELECT CustID
      ,COUNT(*) as Occurance
       FROM [Test].[dbo].[vwBookingCancelletion]
       WHERE [Cancellation Date] between '2018-12-01' and '2019-12-31'
       GROUP BY CustID
)b on a.CustID = b.CustID

您还想增加哪些栏目?样本数据和预期结果(如表格文本)将使您的问题更容易理解。@GMB,我已添加了我试图实现的预期结果,需要添加其他列,如CustName、CancellationDate、Vanue等,但不需要将它们添加到组中。您希望添加哪些列?样本数据和预期结果,如表格文本,将使您的问题更容易理解。@GMB,我已添加了我试图实现的预期结果,需要添加其他列,如CustName、CancellationDate、Vanue等,但没有添加到组中。谢谢您的回答,我可以理解子查询,但不知怎么的,它抛出了错误“靠近“=”的语法不正确”,我认为它无法识别表。。你能提出什么问题吗?@victor:查询的最后一行,
)b internal join a.CustID=b.CustID
应该是
)b on a.CustID=b.CustID
。谢谢,GMBalso会在第一个select语句中添加b.occurrence(因为我想要表b中的occurrence)会改变什么吗?(我尝试了,得到了相同数量的行数)谢谢你们的投入,解决了我的问题,我又回到了正轨:)谢谢你们的回答,我可以理解子查询,但不知怎么的,它抛出错误“靠近“=”的语法不正确”,我相信它无法识别表。。你能提出什么问题吗?@victor:查询的最后一行,
)b internal join a.CustID=b.CustID
应该是
)b on a.CustID=b.CustID
。谢谢,GMBalso会在第一个select语句中添加b.occurrence(因为我想要表b中的occurrence)会改变什么吗?(我尝试了,得到了相同数量的行数)感谢你们的投入,解决了我的问题,我回到了正轨:)