gpt4 book ai didi

mysql - MySQL GROUP BY 子句中应放置哪些列

转载 作者:行者123 更新时间:2023-11-29 06:24:10 25 4
gpt4 key购买 nike

长话短说,我应该在 GROUP BY 子句后面放置哪些字段?

SELECT questions.question_id, questions.title, questions.content, questions.view_count, questions.posted_on, users.user_id, users.group_id, users.username, users.first_name, users.last_name COUNT(answers.answer_id) AS answer_count 
FROM (questions)
JOIN answers ON questions.question_id = answers.question_id
JOIN users ON questions.user_id = users.user_id
WHERE `questions`.`publish` = 'Y' AND `questions`.`deleted_at` IS NULL AND `users`.`blocked` = 'N'
GROUP BY questions.question_id

我应该将 SELECT 中提到的所有非聚合字段都放入其中,还是只放入其中一个字段即可? (例如,只是question_id)我很困惑,因为无论哪种方式,结果都是相同的。有什么区别?

网络上的教程似乎都给出了仅使用两个字段的示例,一个聚合字段和一个普通字段。

更新:好吧,看来我必须将它们全部放入才能获得准确的结果。这就带来了其他问题:准确度有多准确?难道一个人做得不好吗?对性能的影响如何?

最佳答案

“您需要放置所有非聚合列以获得准确的结果”

确实如此,但我想补充一点,您按照您希望的分组顺序放置所有列(这对您来说可能很重要?)。

编辑:准确意味着如果您不这样做,您的查询就会崩溃。关于性能,GROUP BY 中的字段越多,性能下降就越多,但这并不奇怪

关于mysql - MySQL GROUP BY 子句中应放置哪些列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1136310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com