我有一个包含10列的表格来存储标志,对于下面的名称,这些标志只能是Y或N
NAME FLAG1 FLAG2 FLAG3 FLAG4 FLAG5 … FLAG10
----------------------------------------------------------
name1 Y N Y Y Y N
name2 N N Y N N Y
name3 Y Y Y N Y N
我想获取每个名称的Y和N计数。
NAME Y N
---------------
name1 4 6
name2 2 8
name3 5 5
寻找性能良好的oracle / sql查询,该表包含数百万条记录
最佳答案
使用okta计数字符出现的次数:
SELECT name,
REGEXP_COUNT(Flag1||Flag2||Flag3||Flag5||Flag6||Flag7||Flag8||Flag9||Flag10,'Y') AS Y,
REGEXP_COUNT(Flag1||Flag2||Flag3||Flag5||Flag6||Flag7||Flag8||Flag9||Flag10,'N') AS N
FROM t