'CALCULATE HOW MANY 1 IN A GIVEN TABLE
Solution 1:[1]
If your values are only 0 or 1 then:
SELECT SUM(A + B + C+ D) AS total
FROM table_name
If your values can be something else then:
SELECT SUM(
CASE A WHEN 1 THEN 1 ELSE 0 END
+ CASE B WHEN 1 THEN 1 ELSE 0 END
+ CASE C WHEN 1 THEN 1 ELSE 0 END
+ CASE D WHEN 1 THEN 1 ELSE 0 END
) AS total
FROM table_name
Which, for the sample data:
CREATE TABLE table_name (a, b, c, d) AS
SELECT 1, 0, 0, 0 FROM DUAL UNION ALL
SELECT 0, 1, 0, 0 FROM DUAL UNION ALL
SELECT 0, 0, 1, 0 FROM DUAL UNION ALL
SELECT 0, 0, 0, 1 FROM DUAL;
Both output:
TOTAL 4
db<>fiddle here
Solution 2:[2]
WITH CTE(A,B,C,D)AS
(
SELECT 1,0,0,0 UNION ALL
SELECT 0,1,0,0 UNION ALL
SELECT 0,0,1,0 UNION ALL
SELECT 0,0,0,1
)
SELECT SUM
(
CASE
WHEN C.A=1 OR C.B=1 OR C.C=1 OR C.D=1 THEN 1
ELSE 0
END
)AS CNTT
FROM CTE AS C
You can try also this solution
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | MT0 |
| Solution 2 | Sergey |

