SQL 获取唯一的月年组合
SELECT MONTH(sessionStart) AS Expr1, YEAR(sessionStart) AS Expr2
FROM tblStatSessions
WHERE (projectID = 187)
GROUP BY sessionStart
这将返回:
11 | 2010年
11 | 2010年
11 | 2010年
12 | 2010年
12 | 2010年
但我需要它只返回每个实例一次,即:
11 | 2010年
12 | 2010年
如果这有道理的话!
SELECT MONTH(sessionStart) AS Expr1, YEAR(sessionStart) AS Expr2
FROM tblStatSessions
WHERE (projectID = 187)
GROUP BY sessionStart
This returns:
11 | 2010
11 | 2010
11 | 2010
12 | 2010
12 | 2010
But I need it to only return each instance once, IE:
11 | 2010
12 | 2010
If that makes sense!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
以下应该是您想要的:
通常您需要对您选择的每个非聚合列进行
分组
。一些 DBMS(例如 Oracle)强制执行此操作,即不这样做会导致错误,而不是“奇怪”的查询执行。The following should be what you want:
in general you need to
group by
every non-aggregate column that you are selecting. Some DBMSs, such as Oracle, enforce this, i.e. not doing so results in an error rather than 'strange' query execution.尝试:
Try: