我目前使用它来计算表中的所有数字或行,它可以很好地满足我的需要.
SELECT COUNT(*) AS STCount
FROM (SELECT Distinct DPoint, RNum
FROM ECount
WHERE DType = 'STR' AND Month(EDate) = '07') AS rows
Run Code Online (Sandbox Code Playgroud)
我唯一的问题是我必须重复这个陈述,而每次只改变一些事情.我想联合这些选择,但结果显示在一个单独的列中,下面的示例工作获取结果但将它们全部放在同一列中.任何想法如何让他们在自己的专栏中显示一个STCount和NCCount?
SELECT COUNT(*) AS STCount
FROM (SELECT Distinct DPoint, RNum
FROM ECount
WHERE DType = 'STR' AND Month(EDate) = '07') AS rows
UNION
SELECT COUNT(*) AS NCCount
FROM (SELECT Distinct DPoint, RNum
FROM ECount
WHERE DType = 'NCD' AND Month(EDate) = '07') AS rows
Run Code Online (Sandbox Code Playgroud)
结果会是,
STCount NCCount
100 202
Run Code Online (Sandbox Code Playgroud)
Ric*_*ard 12
你可以在select
条款中做选择而不需要from
.
select (select count(1)
from (select distinct DPoint, RNum
from ECount
where DType = 'STR'
and Month(EDate) = '07') as x
) as rows1,
(select count(1)
from (select distinct DPoint, RNum
from ECount
where DType = 'NCD'
and Month(EDate) = '07') as x
) as rows2;
Run Code Online (Sandbox Code Playgroud)
您可以使用CASE:
SELECT
COUNT (CASE WHEN DType = 'STR' THEN (1) ELSE NULL END) AS STCount,
COUNT (CASE WHEN DType = 'NCD' THEN (1) ELSE NULL END) AS NCCount
FROM (Select Distinct DType, DPoint, RNum From ECount WHERE Month(EDate) = '07') as rows
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1406 次 |
最近记录: |