【问题标题】:frequency tables by groups in sqlsql中按组划分的频率表
【发布时间】:2018-07-09 10:19:01
【问题描述】:

简单查询

SELECT  [Dt]
      ,[CustomerName]
      ,[ItemRelation]
      ,[DocumentNum]
      ,[DocumentYear]
      ,[CustomerType]
  FROM [Action].[dbo].[promo_data]

如何按组计算频率表

[CustomerName]+[ItemRelation]+[DocumentNum]+[DocumentYear]+[CustomerType]

为了更清楚,作为我想要的输出

 [CustomerName] [ItemRelation]  [DocumentNum]   [DocumentYear]  [CustomerType]  count
           dix  11111              123             2017              FC    23
          5ive  2222               333              2018             OPT    123

我试过这样做

  select count (distinct [CustomerName]
      ,[ItemRelation]
      ,[DocumentNum]
      ,[DocumentYear]
      ,[CustomerType]) from [Action].[dbo].[promo_data]

但出现错误

Message 102, level 15, state 1, line 11
Invalid syntax near the construction ",".

如何按组计算频率表?

【问题讨论】:

  • 提示:GROUP BY
  • 你有错误。因为,您在count() 函数中使用了多个列

标签: sql sql-server sql-server-2012 ssms


【解决方案1】:

尝试以下方法:

SELECT [CustomerName]
      ,[ItemRelation]
      ,[DocumentNum]
      ,[DocumentYear]
      ,[CustomerType]
      ,Count(*) as cnt
  FROM [Action].[dbo].[promo_data]
GROUP BY
      [CustomerName]
      ,[ItemRelation]
      ,[DocumentNum]
      ,[DocumentYear]
      ,[CustomerType]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 2013-03-25
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    相关资源
    最近更新 更多