, 마이크로 소프트 : 예 항목이 같은 수 있습니다집계 비교 쿼리
`offers`
- id
- Title
- Year
- Platform
- Offer
:
(1, 'Titanic', 1997, 'iTunes', 'HDBUY')
을이 영화 것을 의미 타이틀 Titanic (1997)은 iTunes의 HDBUY에서 사용할 수 있습니다.
나는 여러 플랫폼을 가지고 있으며 iTunes를 다른 플랫폼과 비교하여 어떤 플랫폼이 더 많은 타이틀을 제공하는지 확인하고 싶습니다. 이상적으로, 내 쿼리의 결과는 같을 것이다 다음 : I을 수행하여 플랫폼 당 모든 제안을 얻을 수
CREATE TABLE `offers` (
`id` varchar(20) DEFAULT NULL,
`Title` varchar(100) DEFAULT NULL,
`Year` varchar(20) DEFAULT NULL,
`Platform` varchar(100) DEFAULT NULL,
`Offer` varchar(20) DEFAULT NULL
);
INSERT INTO `offers` (`id`, `Title`, `Year`, `Platform`, `Offer`)
VALUES
('1', 'Titanic', '1997', 'iTunes', 'HDBUY'),
('1', 'Titanic', '1997', 'iTunes', 'SDBUY'),
('2', 'Titanic', '1997', 'Microsoft', 'SDBUY'),
('2', 'Titanic', '1997', 'Microsoft', 'HDBUY'),
('2', 'Titanic', '1997', 'Microsoft', 'SDRENT'),
('3', 'Titanic', '1997', 'Google', 'HDBUY'),
('4', 'Avatar', '2009', 'Google', 'HDBUY');
: 여기
Title Year iTunes_Offers Top_Platform_Offers Top_Platform
Titanic 1997 HDBUY,SDBUY HDBUY,SDBUY,SDRENT Microsoft
Avatar 2009 HDBUY Google
과 함께 테스트 할 샘플 데이터와 스키마입니다 다음 쿼리 : SELECT Title, Year, Platform, GROUP_CONCAT(Offer) GROUP BY id
나에게 제공합니다
0123을그러나 3 가지 열, iTunes_Offers
, Top_Platform_Offers
및 Top_Platform
을 함께 얻을 수 있도록 집계하는 방법을 잘 모르겠습니다. 예를 들어, "Psycho (2005)"는 "Psycho (1960)"와 다른 영화입니다. 예를 들어, CONCAT (제목, 연도)별로 집계하려는 플랫폼을 그룹으로 묶으십시오.
어떻게하면됩니까?
감사합니다. 이것은 내가 필요한 것 같습니다. GROUP_CONCAT 조건부의 – David542
에서 가장 많이 제공되는 플랫폼을 어떻게 확인할 수 있습니까? 이를 위해 하위 쿼리를 수행해야합니까? – David542
@ David542 . . 귀하의 질문에 어떤 플랫폼이 가장 많이 제공되는지를 결정하는 것에 관한 어떤 것도없는 것 같습니다. 새로운 질문은 코멘트가 아닌 새로운 질문으로해야합니다. 원하는 결과를 질문에 포함 시키십시오. –