source

MySQL Nested 선택 쿼리?

manysource 2022. 11. 5. 17:37

MySQL Nested 선택 쿼리?

네, 그럼 다음 질문이 있습니다.

SELECT MIN(`date`), `player_name`
FROM `player_playtime`
GROUP BY `player_name`

다음 쿼리 내에서 이 결과를 사용해야 합니다.

SELECT DATE(`date`) , COUNT(DISTINCT  `player_name`)
FROM  `player_playtime /*Use previous query result here*/`
GROUP BY DATE( `date`) DESC LIMIT 60

이걸 어떻게 하면 좋을까요?

첫 번째 쿼리를 서브쿼리(파생 테이블)로 쓰고 괄호 안에서 해당 에일리어스를 선택합니다( ).t아래) 및 에일리어스도 지정합니다.

DISTINCT또한 내부로서 안전하게 제거할 수 있습니다.GROUP BY용장화:

SELECT DATE(`date`) AS `date` , COUNT(`player_name`) AS `player_count`
FROM (
    SELECT MIN(`date`) AS `date`, `player_name`
    FROM `player_playtime`
    GROUP BY `player_name`
) AS t
GROUP BY DATE( `date`) DESC LIMIT 60 ;

그 이후로는COUNT이제 는 파생 테이블의 행만 카운트하고 있음을 알 수 있습니다.이것으로 대체할 수 있습니다.COUNT(*)또한 쿼리를 더욱 단순화합니다.

SELECT t.date , COUNT(*) AS player_count
FROM (
    SELECT DATE(MIN(`date`)) AS date
    FROM player_playtime
    GROUP BY player_name
) AS t
GROUP BY t.date DESC LIMIT 60 ;

언급URL : https://stackoverflow.com/questions/19964640/mysql-nested-select-query