[英]how to get the count of columns with same value for each row in sql
例如:表
id a b c d
1 Y Y Y N
2 N Y Y N
我需要的是
id a b c d e
1 Y Y Y N 3
2 N Y Y N 2
SQL 函數通常跨行聚合數據,而不是跨列,因此我認為沒有通用的方法可以做到這一點。 但是,對於此用例,您可以使用一系列case
表達式:
SELECT id, a, b, c, d,
CASE a WHEN 'Y' THEN 1 ELSE 0 END +
CASE b WHEN 'Y' THEN 1 ELSE 0 END +
CASE c WHEN 'Y' THEN 1 ELSE 0 END +
CASE d WHEN 'Y' THEN 1 ELSE 0 END AS e
FROM mytable
UPDATE mytable SET e=
CASE a WHEN 'Y' THEN 1 ELSE 0 END +
CASE b WHEN 'Y' THEN 1 ELSE 0 END +
CASE c WHEN 'Y' THEN 1 ELSE 0 END +
CASE d WHEN 'Y' THEN 1 ELSE 0 END
FROM
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.