我有一个tableA
不同的价值观:
data
------
10
15
20
40
40000
50000
60000
Run Code Online (Sandbox Code Playgroud)
此外,我需要获取有关该数据的一些统计信息(我想在一个查询中执行此操作),例如:
select count(data) from tableA where data < 100
union all
select count(data) from tableA where data >= 100
Run Code Online (Sandbox Code Playgroud)
结果,我收到了
(No column name)
----------------
4
3
Run Code Online (Sandbox Code Playgroud)
但我希望在一行中收到结果,如下所示:
Small | Big
---------
4 | 3
Run Code Online (Sandbox Code Playgroud)
怎么做?可能吗?
Mik*_*son 11
select count(case when data < 100 then 1 end) as Small,
count(case when data >= 100 then 1 end) as Big
from TableA
Run Code Online (Sandbox Code Playgroud)
平均值看起来像这样.
select avg(case when data < 100 then data end) as Small,
avg(case when data >= 100 then data end) as Big
from TableA
Run Code Online (Sandbox Code Playgroud)
him*_*056 10
尝试子查询而不是UNION ALL
像这样:
SELECT
(SELECT COUNT(data) FROM tableA WHERE data < 100) AS Small,
(SELECT COUNT(data) FROM tableA WHERE data >= 100) AS Big
Run Code Online (Sandbox Code Playgroud)
DECLARE @tst TABLE (
val INT
)
INSERT INTO @tst (val)
SELECT 10
UNION
SELEcT 15
UNION
SELECT 20
UNION
SELECT 40
UNION
SELECT 40000
UNION
SELECT 50000
UNION
SELECT 60000
;WITH Smalls AS (
SELECT COUNT(val) Small FROM @tst WHERE val < 100
), Bigs AS(
select count(val) Big from @tst where val >= 100
)
SELECT Small, Big
FROM Smalls, Bigs
Run Code Online (Sandbox Code Playgroud)