2011-05-31 52 views
2

我有类似以下帮助与SQL查询计数

ID NUMBER 
VAL1 NUMBER 
VAL2 NUMBER 

我需要显示有VAL1> VAL2和有VAL1 VAL2 <行计数的行数的SQL查询的表。两者都使用一个SQL查询计数。谢谢。

回答

4

该查询应与大多数数据库平台上工作:

select sum(case when val1 > val2 then 1 end) as GreaterThanCount, 
    sum(case when val1 < val2 then 1 end) as LessThanCount 
from MyTable 

,显示不同行的总和,你可以这样做:

select case when val1 > val2 then 'GreaterThan' else 'LessThan' end as Type, 
    count(*) as Count 
from MyTable  
group by case when val1 > val2 then 'GreaterThan' else 'LessThan' end 
+0

是否可以使用相同的SQL查询在两个不同的行中显示计数? – M99 2011-05-31 18:21:30

+0

@ M99看到我的更新超过 – RedFilter 2011-05-31 18:32:18

+0

真棒。感谢你能这么快回复。 – M99 2011-05-31 18:58:34

0

试试这个:

select id, count(VAL1 > VAL2) as more1, count(val2 > val1) as more2 
from your_table 
+0

是否有可能使用相同的SQL查询在两个不同的行中显示计数? – M99 2011-05-31 18:24:08

1

SELECT SUM(VAL1> VAL2)as arg1, SUM(VAL1 < VAL2)as arg2

+0

是否可以使用相同的SQL查询在两个不同的行中显示计数? – M99 2011-05-31 18:25:25