【发布时间】:2021-10-16 21:53:07
【问题描述】:
我有一个名为example 的表,其中包含user_id、date_start 和activity 列
我需要选择user_id、date_startcolumns 并计算唯一的user_id,然后按user_id 和date_start 分组。
表格数据:
----------------------------------
| user_id | date_start | activity |
|---------|------------|-----------|
| 1 |2021-04-01 | CATIA |
| 1 |2021-04-05 | CATIA |
| 1 |2021-04-02 | CATIA |
| 1 |2021-05-01 | CATIA |
| 1 |2021-05-02 | CATIA |
| 3 |2021-05-02 | CATIA |
| 3 |2021-05-03 | CATIA |
| 4 |2021-05-05 | CATIA |
----------------------------------
这个查询:
SELECT FORMAT(d.date_start, 'yyyy-MM'), d.user_id
from (select d.user_id, date_start,
count(*) over (partition by user_id) as cnt,
row_number() over (partition by FORMAT(date_start, 'yyyy-MM') order by FORMAT(date_start, 'yyyy-MM') desc) as seqnum
from planner d
) d
where seqnum = 1;
我需要这样显示我的代码:
---------------------
| date_start | total |
|------------|--------|
| 2021-04 | 1 |
| 2021-05 | 3 |
---------------------
【问题讨论】:
-
您想要的结果与您的查询尝试执行的内容不一致,您想要计算每个唯一日期,但您的查询没有 total 列并且有 user_id 不在您想要的结果中?
-
我编辑我的问题。
标签: sql sql-server group-by count