SQL查询以不同的方式测试我的编程功能

时间:2009-09-16 05:49:45

标签: sql sql-server sql-server-2005

我有一张桌子和一列。有15行(整数)。我想数数 正数和负数,以及一个查询中总数的总和。

任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:3)

或者...

SELECT  
     COUNT(CASE WHEN Col > 0 THEN 1 END) AS NumPositives,
     COUNT(CASE WHEN Col < 0 THEN 1 END) AS NumNegatives,
     SUM(Col) AS Tot
FROM  TableName;

或者您可以考虑使用SIGN(Col),其中正数为1,负数为-1。

答案 1 :(得分:1)

我会给你伪代码来帮助你完成你的作业。

3聚合:

  • SUM
  • SUM(CASE&lt; 0)
  • SUM(CASE&gt; 0)

答案 2 :(得分:1)

select (select sum(mycolumn) from mytable where mycolumn > 0) as positive_sum,
       (select sum(mycolumn) from mytable where mycolumn < 0) as negative_sum,
       sum(mycolumn) as total_sum
from   mytable

答案 3 :(得分:1)

试试这个

SELECT  SUM(CASE WHEN Col > 0 THEN 1 ELSE 0 END) AS Pos,
        SUM(CASE WHEN Col < 0 THEN 1 ELSE 0 END) AS Neg,
        SUM(Col) AS Tot
FROM    Table