在sql

时间:2019-05-09 06:46:14

标签: mysql sql

我制作了一个名为organizacija_akcije的表,并且有一个名为drustva_idDrustva的列,现在我需要找到出现次数最少的drustva_iddrustva的值,我应该在没有LIMIT的情况下仅在havinghaving count的情况下做到这一点。

我已经尝试过这段代码,但是它并没有返回最低的出现次数,而是返回所有出现的次数,我受困了,现在不知道如何获得最低的出现次数。

SET SQL_SAFE_UPDATES = 0;
SELECT `Drustva_idDrustva`,
       COUNT(`Drustva_idDrustva`) AS `value_occurrence` 
  FROM `organizacija_akcije`
 group by Drustva_idDrustva
HAVING (value_occurrence) > 0;

1 个答案:

答案 0 :(得分:2)

要查找出现次数最少的Drustva_idDrustva,可以使用HAVINGALL

SELECT Drustva_idDrustva,
    COUNT(Drustva_idDrustva) AS value_occurrence
FROM organizacija_akcije
GROUP BY Drustva_idDrustva
HAVING COUNT(value_occurrence) <= ALL(
    SELECT COUNT(Drustva_idDrustva)
    FROM organizacija_akcije
    GROUP BY Drustva_idDrustva
)

因此,它将返回Drustva_idDrustva小于或等于所有count(value_occurrence)聚合的count(value_occurrence)