쿼리의 결과를 요약하려고하는데 어려움을 겪고 있습니다. 아래의 쿼리는 fax_authorized 테이블을 확인하고 전자 메일 주소가 포함 된 확장명 요약을 생성합니다.MySQL 쿼리의 요약 요약
SELECT extended_number, IF(COUNT(extension_id)<5,1,0) AS 'fax5',
IF(COUNT(extension_id)>5 AND COUNT(extension_id)<11,1,0) AS 'fax10',
IF(COUNT(extension_id)>10,1,0) AS 'fax10+', COUNT(extension_id) AS 'fax_total'
FROM fax_authorized fa, extension e
WHERE fa.extension_id = e.id
GROUP BY extended_number;
출력은 다음과 같습니다 :
나는 다음과 같은 쿼리가 내가 좋아하는 것이 무엇
+-----------------+------+-------+--------+-----------+
| extended_number | fax5 | fax10 | fax10+ | fax_total |
+-----------------+------+-------+--------+-----------+
| 0009*004 | 1 | 0 | 0 | 1 |
| 0139*601 | 0 | 1 | 0 | 6 |
| 0139*743 | 1 | 0 | 0 | 2 |
| 0139*996 | 1 | 0 | 0 | 1 |
+-----------------+------+-------+--------+-----------+
는 왼쪽에 따라이 데이터를 요약하는 것입니다 (extended_number를, 4)에 대한 있도록 위의 예제 0139는 fax5 = 2, fax10 = 1, fax_total = 9를 갖습니다.
나는이 작동하지 않는이, 시도 :
SELECT extended_number, SUM(IF(COUNT(extension_id)<5,1,0)) AS 'fax5',
SUM(IF(COUNT(extension_id)>5 AND COUNT(extension_id)<11,1,0)) AS 'fax10',
SUM(IF(COUNT(extension_id)>10,1,0)) AS 'fax10+',
COUNT(LEFT(extension_id,4)) AS 'fax_total'
FROM fax_authorized fa, extension e
WHERE fa.extension_id = e.id
GROUP BY LEFT(extended_number,4);
편집 : 나는 아래이 문제를 해결하기 위해 Saharsh 샤의 대답을 사용하지만, 내가 추가하는 가치라고 생각 다른 일을했다. 내 중첩 된 하위 쿼리 솔루션에서보기를 만들려고했으나 하위 쿼리가보기에 허용되지 않아 연결할 수 없습니다.
CREATE VIEW vw_xoom_faxdetail AS
SELECT LEFT(extended_number,4) client_id,
IF(COUNT(extension_id)<5,1,0) AS 'fax5',
IF(COUNT(extension_id)>5 AND COUNT(extension_id)<11,1,0) AS 'fax10',
IF(COUNT(extension_id)>10,1,0) AS 'fax10plus',
COUNT(extension_id) AS 'fax_total'
FROM fax_authorized fa, extension e WHERE fa.extension_id = e.id
GROUP BY client_id;
CREATE VIEW vw_xoom_fax AS
SELECT client_id, SUM(fax5) fax5, SUM(fax10) fax10,
SUM(fax10plus) 'fax10+', SUM(fax_total) fax_total
FROM vw_xoom_faxdetail
GROUP BY client_id;
당신은 결함이 무엇을 의미합니까 다음과 같이 그래서 나는이 관련 뷰를 생성? –
@Jack - 죄송합니다. 작동하지 않는다는 의미인데, 구문 오류가 발생했습니다. – btongeorge