Reputation: 5876
I would like to run a select something like this.
SELECT
COUNT(*) WHERE switch=0 AND detail=1 AS zeroone
AND
COUNT(*) WHERE switch=0 AND detail=2 AS zerotwo
AND
COUNT(*) WHERE switch=1 AND detail=1 AS oneone
AND
COUNT(*) WHERE swithc=1 AND detail=2 AS onetwo
FROM tablename
Is there a way to do this?
Upvotes: 4
Views: 1506
Reputation: 1681
Why Don't you use this?
SELECT COUNT(*)
FROM tablename
GROUP BY switch, detail
Upvotes: 0
Reputation: 16037
It is not clear what do you want.
I suppose you want to a select, that returns one row, having 4 columns:
SELECT
COUNT(*) WHERE switch=0 AND detail=1 AS zeroone,
COUNT(*) WHERE switch=0 AND detail=2 AS zerotwo,
COUNT(*) WHERE switch=1 AND detail=1 AS oneone,
COUNT(*) WHERE swithc=1 AND detail=2 AS onetwo
FROM tablename
Upvotes: 0
Reputation: 247620
You can use a CASE
Statement in your SELECT
to get the results:
SELECT SUM(case when switch=0 AND detail=1 then 1 else 0 end) as zeroone
, SUM(case when switch=0 AND detail=2 then 1 else 0 end) as zerotwo
, SUM(case when switch=1 AND detail=1 then 1 else 0 end) as oneone
, SUM(case when switch=1 AND detail=2 then 1 else 0 end) as onetw
FROM tablename
Upvotes: 4
Reputation: 204746
SELECT
sum(switch=0 AND detail=1) AS zeroone,
sum(switch=0 AND detail=2) AS zerotwo,
sum(switch=1 AND detail=1) AS oneone,
sum(switch=1 AND detail=2) AS onetwo
FROM tablename
Upvotes: 4
Reputation: 7786
SELECT SUM(CASE WHEN switch = 0 and detail = 1 THEN 1 ELSE NULL END) AS zeroone
, ...
FROM TableName
Upvotes: 1