2017-04-26 13 views
0

"ticket"カラムで2つの値 "1"と "2"の出現回数を数えようとしていますが、 「where」と「from」からの行。2つのカウント要求を1つのクエリでwhereとfromにする

「チケット」は列、「チケット」はテーブルです。

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がそれぞれ1つしかない場合があります。 – 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値をカウントします。

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 count(*) 
     , ticket 
    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; 
関連する問題