【发布时间】:2020-04-21 10:22:08
【问题描述】:
我有一个格式如下的表格:
Date Login
2020-03-12 01:42:00.0000000 agent2
2020-03-12 01:42:00.0000000 agent2
2020-03-12 01:43:00.0000000 pma
2020-03-12 01:43:00.0000000 agent2
2020-03-12 01:43:00.0000000 agent2
2020-03-12 01:43:00.0000000 agent3
2020-03-12 01:43:00.0000000 agent1
2020-03-12 01:43:00.0000000 agent1
我需要每分钟对每个用户进行分组,但是,当在登录字段上使用分组依据时(如下所示),我收到错误“选择列表中的“日期”列无效,因为它不包含在聚合函数或 GROUP BY 子句中”。
SELECT Date , Login
FROM connections
GROUP BY login
预期的结果是这样的:
Date Login Connections
2020-03-12 01:42:00.0000000 agent2 2
2020-03-12 01:43:00.0000000 pma 1
2020-03-12 01:43:00.0000000 agent2 2
2020-03-12 01:43:00.0000000 agent3 1
2020-03-12 01:43:00.0000000 agent1 2
这是因为当你有一个 datetime2 类型的列时不能分组吗?我需要为连接数创建另一个表吗?
【问题讨论】:
-
“当你有一个 datetime2 类型的列时,你可以分组吗?” 是的,你可以按你想要的任何表达式(不推荐使用的数据类型)进行分组,例如 @987654324 @ 没有区别。向我们展示您的尝试、预期结果并解释为什么该尝试不是您想要的。
-
该语句将出错,您的列
Date上没有聚合。它不在你说的GROUP BY中,。 -
你应该学习如何正确使用
GROUP BY。您不能随心所欲地编写查询,并期望 SQL Server 能够理解并运行它。
标签: sql sql-server tsql datetime group-by