gpt4 book ai didi

mysql - 使用 COUNT() 作为总计 AND WHERE 与 JOIN 查询

转载 作者:行者123 更新时间:2023-11-29 00:03:53 26 4
gpt4 key购买 nike

我已经尝试了几个语句,但似乎无法获得我需要的结果。到目前为止,这是我所拥有的,但这会产生一个空表。

我需要计算 wordnik_examples 表中 JOIN 中小于 20 的 word_id 的数量。

SELECT wordnik_examples.word_id,wordnik_word.word,count(wordnik_examples.word_id) as total
FROM `wordnik_examples`
JOIN `wordnik_word` ON wordnik_examples.word_id = wordnik_word.ID
WHERE (SELECT count(wordnik_examples.word_id) FROM `wordnik_examples`) < 20
GROUP BY wordnik_examples.word_id ORDER BY `total` DESC

我也试过

SELECT wordnik_examples.word_id,wordnik_word.word,count(wordnik_examples.word_id) as total
FROM `wordnik_examples`
JOIN `wordnik_word` ON wordnik_examples.word_id = wordnik_word.ID
WHERE total < 20
GROUP BY wordnik_examples.word_id ORDER BY `total` DESC

但是 mysql 返回一个错误,指出 total 列我们未知。

我还尝试对两个查询使用 HAVING 而不是 WHERE ,但效果不佳。

最佳答案

您的分组不够深入。如果您有两个“常规”列后跟一个聚合,则按两个“常规”列分组。 MySQL 很少允许您仅按非聚合列的子集进行分组。

至于按任何聚合过滤,这里指的是计数,您必须使用HAVING

SELECT
wordnik_examples.word_id,
wordnik_word.word,
count(wordnik_examples.word_id) as total
FROM wordnik_examples
JOIN wordnik_word ON wordnik_examples.word_id = wordnik_word.ID
GROUP BY
wordnik_examples.word_id,
wordnik_word.word
HAVING count(wordnik_examples.word_id) < 20

关于mysql - 使用 COUNT() 作为总计 AND WHERE 与 JOIN 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28416570/

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