피벗 테이블을 사용하여 Excel에서이 작업을 수행 할 수 있지만이 작업을 단일 SQL 쿼리에서 직접 수행하는 방법을 알고 싶습니다. 이제 나는 과일의 목록과 신선도 있다고 가정 해 봅시다 :가장 일반적인 두 번째로 가장 일반적인 세 번째로 가장 많이 나타나는 항목을 반환하는 SQL 쿼리
**Fruit Freshness**
Banana New
Banana Ripe
Apple Ripe
Orange Old
Cherry New
Orange Ripe
Apple Old
Banana Old
Apple New
Apple New
Orange Ripe
Banana Old
Orange New
Cherry New
Cherry Ripe
내가 다음 등 가장 자주 가장 자주 2, 및로 순위를 매기은 "신선도"발생을 계산합니다. 결과는 다음과 같습니다.
**Fruit Most common 2nd most common 3rd most common**
Banana New Old Ripe
Apple Old New Ripe
Orange Ripe New Old
Cherry New Ripe NA
하나의 쿼리로 가능합니까?
가 같은 값을 반환합니다SELECT
Fruit, GROUP_CONCAT(Freshness ORDER BY cnt DESC) as Common
FROM (
SELECT Fruit, Freshness, COUNT(*) cnt
FROM
fruits
GROUP BY
Fruit, Freshness
) s
: 당신은 세 개의 열에서 결과를 분할하려는 경우
Fruit | Common
---------------------
Banana | New,Old,Ripe
Cherry | New,Ripe
... | ...
는하지만, 이전 쿼리를 결합 할 수 있습니다
편집을보십시오. – Mihai