【问题标题】:TSQL: Need to Count Multiple Columns and Group by their ContentsTSQL:需要计算多列并按内容分组
【发布时间】:2018-02-01 02:14:41
【问题描述】:

我有以下数据集:

StartDate   EnterDate   Order#
----------  ----------  ------
2018-01-01  2018-01-01  1
2018-01-01  2018-01-01  2
2018-01-01  2018-01-02  3
2018-01-02  2018-01-02  4
2018-01-02  2018-01-03  5
2018-01-02  2018-01-03  6
2018-01-03  2018-01-04  7
2018-01-03  2018-01-04  8
2018-01-03  2018-01-04  9
2018-01-03  2018-01-05  10

我需要COUNT 每列中的日期数。

示例输出:

Date          StartDate    EnterDate
----------    ---------    ---------
01-01-2018    3            2
01-02-2018    3            2
01-03-2018    4            2
01-04-2018    0            3
01-05-2018    0            1

NULL 可以代替0

【问题讨论】:

    标签: tsql count multiple-columns


    【解决方案1】:

    您可以使用full join 来实现这一目标

    select
        Date = isnull(t.StartDate, q.EnterDate), StartDate = isnull(t.cnt, 0), EnterDate = isnull(q.cnt, 0)
    from (
        select
            StartDate, count(*) cnt
        from
            myTable
        group by StartDate
    ) t 
    full join (
        select
            EnterDate, count(*) cnt
        from
            myTable
        group by EnterDate
    ) q on t.StartDate = q.EnterDate
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-07
      • 1970-01-01
      • 2020-11-06
      • 2015-05-18
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多