0
我正在参加一门关于MySQL的coursera在线课程。在其中一个练习中,我必须MySQL:分组条款
“编写一个查询,输出美国州和邮政编码(邮政编码)的每个组合中唯一User_Guids的总数,首先按状态名称按字母升序排序顺序,第二通过降序排列独特User_Guids”
总数所以我写了这样的代码:
SELECT state, zip, COUNT(DISTINCT user_guid) AS NUM_Users
FROM users
WHERE Country="US"
GROUP BY zip
ORDER BY State ASC, NUM_Users DESC;
,并在我的回答得到5027行。
正确的代码是一个明显的例外是相同的:
GROUP BY State, zip
它得到5043行。
我很困惑。为什么我的代码不工作并给出正确答案?
谢谢!
group by state。你选择国家,但由国家 –
组,因为有邮政编码,可在多个国家? – Jens
第一个GROUP BY无效,将在旧版本的MySQL中返回不可预知的结果,将在新版本中引发错误(除非在兼容模式下)。一般的GROUP BY规则表示:如果指定了GROUP BY子句,则每个列引用在SELECT列表中必须标识分组列或者是设置函数的参数! – jarlh