【发布时间】:2015-02-12 04:57:35
【问题描述】:
我有一个为 MySql 编写的查询,它使用 LIMIT 和 GROUP BY 关键字。它在 MySql 上运行良好。查询是:
SELECT
tester,
firstname,
COUNT(*) total
FROM mnrelease_details a LEFT JOIN users b ON tester='guest'
WHERE a.project='testpro'
GROUP BY tester ORDER BY total ASC LIMIT 10;
我试图将它翻译成 T-Sql 以便在 Sql Server 上使用。这是我为Sql Server 提供的:
SELECT TOP 10
tester,
firstname,
COUNT(*) total
FROM mnrelease_details a
LEFT JOIN users b ON tester='guest'
WHERE a.project='testpro'
GROUP BY tester ORDER BY total ASC;
但是,当我尝试在 Sql Server 上使用它时,我得到了这个错误:
列“users.firstname”在选择列表中无效,因为它是 不包含在聚合函数或 GROUP BY 子句中。
为什么 Sql Server 不允许这样做?为什么 Sql Server 不允许单个 GROUP BY 而不是添加 GROUP BY 中的所有列?我只想按tester 列进行分组,就像我对 MySql 所做的那样。
【问题讨论】:
标签: mysql sql-server sql-server-2008-r2