让我们考虑一下这个表:
[name] [type]
"Ken Anderson" 1
"John Smith" 2
"Bill Anderson" 1
"George Anderson" 1
"Taylor Smith" 1
"Andrew Anderson" 2
"Dominic Smith" 2
Run Code Online (Sandbox Code Playgroud)
那个查询:
SELECT mates.type, COUNT(*) AS SmithsCount
FROM mates
WHERE mates.name LIKE "* Smith"
GROUP BY mates.type
Run Code Online (Sandbox Code Playgroud)
结果应该是这样的
[type] [SmithsCount]
1 1
2 2
Run Code Online (Sandbox Code Playgroud)
如果我想也安德森各组计数?喜欢
[type] [SmithsCount] [AndersonsCount]
1 1 3
2 2 1
Run Code Online (Sandbox Code Playgroud)
而且,当然,我希望这是最简单的,因为它可以;)我是新的SQL,我在W3学校和http://www.sql-tutorial.net/上的教程,但是很差示例基础知识,任何"更多"复杂的查询.有人有一些有用的链接吗?谢谢.
select type,
sum(case when name like '% Smith' then 1 else 0 end) as SmithCount,
sum(case when name like '% Anderson' then 1 else 0 end) as AndersonCount
from mates
group by type
Run Code Online (Sandbox Code Playgroud)