【发布时间】:2020-08-08 20:45:25
【问题描述】:
我在 SQL Server 2016 数据库上有下表
/****** Script for SelectTopNRows command from SSMS ******/
SELECT [ID]
,[comb_date]
,PARSE(comb_date AS datetime USING 'en-GB') as comb_date_dt
,[ICC_NAME]
FROM [GC].[dbo].[TABLE1]
ID comb_date comb_date_dt ICC_NAME
89767 1/07/2000 4:07 2000-07-01 04:07:00.000 Wangaratta
42280 1/07/2000 4:13 2000-07-01 04:13:00.000 Geelong
25238 1/07/2000 17:28 2000-07-01 17:28:00.000 Dandenong
38419 1/07/2000 22:18 2000-07-01 22:18:00.000 Ferntree Gully
11222 1/07/2000 23:06 2000-07-01 23:06:00.000 Bendigo
47337 2/07/2000 0:17 2000-07-02 00:17:00.000 Gisborne
25239 2/07/2000 0:43 2000-07-02 00:43:00.000 Dandenong
38420 2/07/2000 2:03 2000-07-02 02:03:00.000 Ferntree Gully
66686 2/07/2000 2:57 2000-07-02 02:57:00.000 Leongatha
38421 2/07/2000 8:57 2000-07-02 08:57:00.000 Ferntree Gully
25240 2/07/2000 12:20 2000-07-02 12:20:00.000 Dandenong
11223 3/07/2000 14:26 2000-07-03 14:26:00.000 Bendigo
11224 3/07/2000 14:29 2000-07-03 14:29:00.000 Bendigo
47338 3/07/2000 15:54 2000-07-03 15:54:00.000 Gisborne
42281 3/07/2000 17:03 2000-07-03 17:03:00.000 Geelong
23147 3/07/2000 18:40 2000-07-03 18:40:00.000 Colac
59198 4/07/2000 13:15 2000-07-04 13:15:00.000 Heywood
25241 4/07/2000 14:39 2000-07-04 14:39:00.000 Dandenong
38422 4/07/2000 17:12 2000-07-04 17:12:00.000 Ferntree Gully
25242 4/07/2000 20:59 2000-07-04 20:59:00.000 Dandenong
...
...
... 30/06/2018 22:30 2018-06-30 22:30:00.000 ORBOST
该表显示了每个 ICC_NAME 从 2000 年 7 月到 2018 年 6 月的所有事件。大约有 30 个唯一的 ICC_NAME 值。
我想要得到的是一个输出,其中包含年月(从 2000-07 到 2018-06)作为行(dt_yyyy_mm),每个 ICC_NAME 作为列和每个年月的月计数/数字记录总和和 ICC_NAME。
dt_yyyy_mm Dandenong Ferntree Gully Heywood Geelong Gisborne ... ... Wangaratta
2000-01 21 9 14 27 6 ... ... 16
2000-02 17 11 20 4 15 ... ... 19
... ...
2018-06 13 7 9 11 2 ... ... 13
我假设我需要在记录上使用多个“组”并按 ID 总和 分别为每个 yyyy-mm 和 ICC_NAME,但我不知道从哪里开始。
【问题讨论】:
标签: sql sql-server date sum pivot