programing

MySQL 발생 횟수가 2를 초과합니다.

bestcode 2023. 2. 6. 23:34
반응형

MySQL 발생 횟수가 2를 초과합니다.

나는 다음과 같은 테이블 구조를 가지고 있다.

+  id  +  word  +
+------+--------+

테이블은 특정 텍스트의 소문자로 채워지기 때문에 텍스트는

안녕 안녕 안녕

이 될 것이다

+  id  +  word  +
+------+--------+
+   1  + hello  +
+------+--------+
+   2  + bye    +
+------+--------+
+   3  + hello  +
+------+--------+

테이블에서 두 번 이상 반복되는 단어 수를 반환하는 SELECT 쿼리를 만들고 싶다(hello 등).

SELECT COUNT(id) FROM words WHERE (SELECT COUNT(words.word))>1

테이블이 크면 당연히 잘못되고 과부하죠.어떻게 하면 그런 목적을 달성할 수 있을까?위의 예에서는 1을 상정하고 있습니다.

두 번 이상 나타나는 단어 목록과 단어 발생 빈도를 가져오려면 GROUP BY와 HAVING을 함께 사용합니다.

SELECT word, COUNT(*) AS cnt
FROM words
GROUP BY word
HAVING cnt > 1

위의 결과 집합에서 단어 수를 찾으려면 하위 쿼리로 사용하고 외부 쿼리의 행을 세십시오.

SELECT COUNT(*)
FROM
(
    SELECT NULL
    FROM words
    GROUP BY word
    HAVING COUNT(*) > 1
) T1
SELECT count(word) as count 
FROM words 
GROUP BY word
HAVING count >= 2;

SELECT word, COUNT(*) FROM words GROUP by word HAVING COUNT(*) > 1

HAVING 옵션은 이 목적으로 사용할 수 있으며 쿼리는 다음과 같습니다.

SELECT word, COUNT(*) FROM words 
GROUP BY word
HAVING COUNT(*) > 1;

언급URL : https://stackoverflow.com/questions/3937283/mysql-count-occurrences-greater-than-2

반응형