我的SQL查询有问题。
我在Name
的{{1}}栏中有名字,例如:
Table_Name
我想知道有多少名字包含字母'Mila', 'Adrianna' 'Emma', 'Edward', 'Adam', 'Piter'
,有多少名字包含字母'A'
。
输出应为:
'E'
我试着这样做:
letter_A ( 5 )| letter_E (3)
我的查询仅显示“A”或“E”是否在名称中:/
有人可以帮忙吗? :)
答案 0 :(得分:1)
您可以使用条件聚合:
select sum(case when Nazwisko like '%A%' then 1 else 0 end) as A_cnt,
sum(case when Nazwisko like '%E%' then 1 else 0 end) as E_cnt
from table_name
where Nazwisko like '%A%' or Nazwisko like '%E%';
答案 1 :(得分:0)
如果您只需要计数,则只需要汇总。
select
sum(case when charindex('a',name) <> 0 then 1 else 0 end) as a_count
,sum(case when charindex('e',name) <> 0 then 1 else 0 end) as e_count
from table_name
答案 2 :(得分:0)
;WITH CTE
AS (SELECT NAME
FROM (VALUES ('MILA'),
('ADRIANNA'),
('EMMA'),
('EDWARD'),
('ADAM'),
('PITER'))V(NAME)),
CTE_NAME
AS (SELECT COUNT(NAME_A) NAME_A,
COUNT(NAME_E) NAME_E
FROM (SELECT CASE
WHEN NAME LIKE '%A%' THEN NAME
END NAME_A,
CASE
WHEN NAME LIKE '%E%' THEN NAME
END NAME_E
FROM CTE
GROUP BY NAME)A)
SELECT *
FROM CTE_NAME