Reputation: 95
I need some help with my query...I am trying to get a count of names in each house, all the col#'s are names.
Query:
SELECT
House#,
COUNT(CASE WHEN col#1 IS NOT NULL THEN 1 ELSE 0 END) +
COUNT(CASE WHEN col#2 IS NOT NULL THEN 1 ELSE 0 END) +
COUNT(CASE WHEN col#3 IS NOT NULL THEN 1 ELSE 0 END) AS count
FROM
myDB
WHERE
House# IN (house#1, house#2, house#3)
GROUP BY
House#
Desired results:
house 1 - the count is 3
house 2 - the count is 2
house 3 - the count is 1
...with my current query the results for count would be just 3's
Upvotes: 0
Views: 115
Reputation: 175836
COUNT
by design doesn't count NULL
values.
SELECT House#,
COUNT(col1#) + COUNT(col2#) + COUNT(col3#) AS count
FROM myDB
WHERE House# IN (house#1,house#2,house#3)
GROUP BY House#;
Upvotes: 1