过滤不同的值后获取SUM

时间:2013-12-26 13:01:09

标签: sql

嗨大家我在过滤不同的值

后获得一列的总和需要帮助

样本表

refwo   hrs
123      1
123      1
123      1
456      2
768      2

我怎么能写一个sql来获得总数“5”? 我已经在这个论坛上进行了分析,并且大多数人都说使用“分组依据”,但我认为它不起作用,因为我需要1个值而不是2个列

3 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情

SELECT SUM(Q1.HRS)
FROM (
  SELECT DISTINCT REFWO
  , HRS
  FROM SAMPLE_DATA
  ) Q1

SQL Fiddle

答案 1 :(得分:1)

SELECT SUM(DISTINCT hrs)
FROM
sample_table;

您的密钥是DISTINCT内部AGGREGATE功能!

如果您期望这样的话?去寻找像东西一样的观点!

SELECT SUM(hrs)
FROM
(SELECT DISTINCT hrs , refwo
 FROM
 sample_table) as my_alias;

SQL Fiddle

答案 2 :(得分:0)

使用 SUM 函数获取列的总和。

就是这样。

SELECT SUM(DISTINCT hrs) AS Total FROM your_Table_Name GROUP BY refwo