2017-04-26 4 views
0

"티켓"열에서 두 값 "1"및 "2"의 발생 횟수를 계산하려고하는데 다른 값을 추가하면 오류가 발생합니다. "where"와 "from"의 라인.한 번 쿼리에서 두 번으로 두 번 계산 요청

"ticket"은 열이고 "tickets"는 테이블입니다.

SELECT 
COUNT(ticket) as child FROM tickets WHERE ticket = 1, 
COUNT(ticket) as adult FROM tickets WHERE ticket = 2 
GROUP by ticket 
+0

이들이 아닌 하위 쿼리 외에 쿼리에는 하나의 FROM 및 하나의 WHERE가있을 수 있습니다. – Uueerdo

답변

0

사용 조건 집합 :

SELECT SUM(t.ticket = 1) as t1, 
     SUM(t.ticket = 2) as t2 
FROM tickets t; 
0

당신과 같이 조건부 집계를 찾고 :

SELECT COUNT(IF(ticket=1, 1, NULL) AS child 
    , COUNT(IF(ticket=2, 1, NULL)) AS adult 
FROM tickets 
; 

COUNT는 null 이외의 값을 계산합니다.

Select count(*) 
     , ticket 
    from tickets 
    where ticket In (1,2) 
Group by ticket 
     ; 
1
SELECT 
COUNT(if(ticket = 1,1,NULL)) as child, 
COUNT(if(ticket = 2,1,NULL)) as adult FROM tickets where ticket in (1,2) 
GROUP by ticket 

또는

SELECT 
sum(if(ticket = 1,1,0)) as child, 
sum(if(ticket = 2,1,0)) as adult FROM tickets where ticket in (1,2) 
GROUP by ticket 

당신의 쿼리 구문이 유효하지 않습니다이

0

같은 노력이 하나의 시도 검색어.

SELECT SUM(ticket = 1) as t1, 
     SUM(ticket = 2) as t2 
FROM tickets 
group by tickets; 
0

이를 시도하고 나를 어떤 경우에 알려 :