如何 select 每个唯一日期的唯一会话 SQL?
How to select unique sessions per unique dates with SQL?
我正在为 SQL 苦苦挣扎。我想 select 在 table 的唯一日期的所有唯一会话。我没有得到我想要的结果。
table 示例:
session_id | date
87654321 | 2020-05-22 09:10:10
12345678 | 2020-05-23 10:19:50
12345678 | 2020-05-23 10:20:23
87654321 | 2020-05-23 12:00:10
这是我现在的 SQL。我 select 来自日期时间列的所有不同日期。我还计算了所有不同的 session_id。我按日期对它们进行分组。
SELECT DISTINCT DATE_FORMAT(`date`, '%d-%m-%Y') as 'date', COUNT(DISTINCT `session_id`) as 'count' FROM `logging` GROUP BY 'date'
我想看到的是(上面的例子):
date | count
22-05-2020 | 1
23-05-2020 | 2
我现在用真实 table(在 3 个不同日期进行 354 次会话)得到的结果是:
date | count
21-05-2020 | 200
编辑
将 ` 更改为 '。
您可能想根据日期表达式分组
SELECT DATE_FORMAT(`date`, '%d-%m-%Y') as `date`, COUNT(DISTINCT `session_id`) as `count` FROM `logging` GROUP BY DATE_FORMAT(`date`, '%d-%m-%Y')
字段名称和别名名称相同(date
)。请尝试使用不同的名称作为别名,以免在 GROUP BY 部分出现混淆
我正在为 SQL 苦苦挣扎。我想 select 在 table 的唯一日期的所有唯一会话。我没有得到我想要的结果。
table 示例:
session_id | date
87654321 | 2020-05-22 09:10:10
12345678 | 2020-05-23 10:19:50
12345678 | 2020-05-23 10:20:23
87654321 | 2020-05-23 12:00:10
这是我现在的 SQL。我 select 来自日期时间列的所有不同日期。我还计算了所有不同的 session_id。我按日期对它们进行分组。
SELECT DISTINCT DATE_FORMAT(`date`, '%d-%m-%Y') as 'date', COUNT(DISTINCT `session_id`) as 'count' FROM `logging` GROUP BY 'date'
我想看到的是(上面的例子):
date | count
22-05-2020 | 1
23-05-2020 | 2
我现在用真实 table(在 3 个不同日期进行 354 次会话)得到的结果是:
date | count
21-05-2020 | 200
编辑
将 ` 更改为 '。
您可能想根据日期表达式分组
SELECT DATE_FORMAT(`date`, '%d-%m-%Y') as `date`, COUNT(DISTINCT `session_id`) as `count` FROM `logging` GROUP BY DATE_FORMAT(`date`, '%d-%m-%Y')
字段名称和别名名称相同(date
)。请尝试使用不同的名称作为别名,以免在 GROUP BY 部分出现混淆