cra*_*xxx 24 sql-server select
对于某些人来说,它可能看起来很简单,但我根本无法得到它.
我一遍又一遍地从同一个表中有多个MS-SQL SELECT查询:
SELECT count(Page) as tAEC
FROM someTable
WHERE Page LIKE '%AEC%'
Run Code Online (Sandbox Code Playgroud)
下一个
SELECT count(Page) as tTOL
FROM someTable
WHERE Page LIKE '%TOL%'
Run Code Online (Sandbox Code Playgroud)
等等...
什么是更有效的方式来编写此查询.我用Google搜索了一堆类似的问题,但我无法让它们中的任何一个起作用.所以任何帮助都非常感谢.
Red*_*ter 68
SELECT sum(case when Page LIKE '%AEC%' then 1 end) as tAEC,
sum(case when Page LIKE '%TOL%' then 1 end) as tTOL
FROM someTable
Run Code Online (Sandbox Code Playgroud)
你可以使用 GROUP BY Page
SELECT
Page
, COUNT(Page) as "nb"
FROM someTable
GROUP BY Page
Run Code Online (Sandbox Code Playgroud)
你也可以做一个 GROUP BY CASE...
SELECT
CASE
WHEN Page LIKE '%AEC%' THEN "AEC"
WHEN Page LIKE '%TOL%' THEN "TOL"
ELSE ""
END AS "type"
, count(Page) as "nb"
FROM someTable
GROUP BY type
Run Code Online (Sandbox Code Playgroud)
你也可以 COUNT IF
SELECT
COUNT(IF(Page LIKE '%AEC%', 1, NULL) THEN "AEC"
, COUNT(IF(Page LIKE '%TOL%', 1, NULL) THEN "TOL"
FROM someTable
Run Code Online (Sandbox Code Playgroud)