당신은 SUM에게 (CASE 문을 사용하여 얻을 수 있습니다 : 여기 샘플을 설정 한
drop table if exists sandiklar;
create table if not exists sandiklar(tur text, EVET int, HAYIR int, BOS int, GECERSIZ int);
insert into sandiklar values
('MM', 100, 220, 310, 410),
('MM', 110, 230, 320, 420),
('MM', 120, 230, 360, 450),
('M', 110, 210, 370, 420),
('M', 140, 250, 320, 470),
('M', 120, 250, 330, 430),
('MB', 110, 260, 310, 490),
('MB', 150, 210, 310, 430),
('MB', 130, 210, 310, 430);
SELECT SUM(CASE WHEN TUR = 'MM' THEN EVET ELSE 0 END) as EvetMM,
SUM(CASE WHEN TUR = 'MM' THEN HAYIR ELSE 0 END) as HayirMM,
SUM(CASE WHEN TUR = 'MM' THEN BOS ELSE 0 END) as EvetMM,
SUM(CASE WHEN TUR = 'MM' THEN GECERSIZ ELSE 0 END) as GecersizMM,
SUM(CASE WHEN TUR = 'M' THEN EVET ELSE 0 END) as EvetM,
SUM(CASE WHEN TUR = 'M' THEN HAYIR ELSE 0 END) as HayirM,
SUM(CASE WHEN TUR = 'M' THEN BOS ELSE 0 END) as EvetM,
SUM(CASE WHEN TUR = 'M' THEN GECERSIZ ELSE 0 END) as GecersizM,
SUM(CASE WHEN TUR = 'MB' THEN EVET ELSE 0 END) as EvetMB,
SUM(CASE WHEN TUR = 'MB' THEN HAYIR ELSE 0 END) as HayirMB,
SUM(CASE WHEN TUR = 'MB' THEN BOS ELSE 0 END) as EvetMB,
SUM(CASE WHEN TUR = 'MB' THEN GECERSIZ ELSE 0 END) as GecersizMB
FROM sandiklar
WHERE TUR IN ('MM','M','MB');
drop table if exists sandiklar;
| EvetMM | HayirMM | EvetMM | GecersizMM | EvetM | HayirM | EvetM | GecersizM | EvetMB | HayirMB | EvetMB | GecersizMB |
|-------:|--------:|--------|------------|--------|---------|--------|------------|--------|---------|--------|------------|
| 330 | 680 | 990 | 1280 | 370 | 710 | 1020 | 1320 | 390 | 680 | 930 | 1350 |
:.. http://rextester.com/SIO50162
Woww 그게 정말 빨리 내 여러 선택 어떤 성능 차이가 있나요 쿼리와 너의 것? – Martin
TUR에 인덱스가 있다면'WHERE TUR IN ('MM', 'M', 'MB')'를 추가 할 수 있습니다 – McNets