选择并操作SQL数据,DISTINCT和SUM?

时间:2016-06-03 18:02:12

标签: sql sorting sum distinct summarization

我试图为自己做一个小报告,看看我每天都有多少时间在我的系统中输入。

目标是让我的SQL总结一个特定日期的名称,工作总时间和总NG产品。

按此顺序:

1。)为特定的“日期”整理我的数据。 I.E 2016-06-03

2.。)为'运营商'提供DISTINCT值

3。)SUM()所有时间都在此'日期'注册,并由'运营商'在'total_working_time_h'下注册

4。)SUM()在此'日期'注册的所有no_of_defects以及'no_of_defects'下的'运营商'

日期,运营商,total_working_time_h,no_of_defects

目前,我使用下面的查询获取了我想要的数据。但是现在我需要运算符的DISTINCT值和信息的SUM。我可以为此使用子查询,还是应该通过循环来完成?还有其他提示,我可以在这里了解更多有关如何解决此问题的信息?

如果我运行DISTINCT函数,我没有机会按照我尝试的方式对数据求和。

    SELECT date,    operator,   total_working_time_h,   no_of_defects FROM {$table_work_hours} WHERE date = '2016-06-03' "

Example of data as picture

3 个答案:

答案 0 :(得分:2)

在不知道表结构或内容的情况下,以下查询只是一个很好的猜测。要注意和使用的位是sum()GROUP BY。实际上语法会有所不同,具体取决于您使用的RDBMS。

SELECT
   date
  ,operator
  ,SUM(total_working_time_h)  AS total_working_time_h
  ,SUM(no_of_defects)         AS no_of_defects
 FROM {$table_work_hours}
 WHERE date = '2016-06-03'
 GROUP BY
   date
  ,operator

(取出WHERE子句或用一系列日期替换它以获得每个操作员每个日期的结果。)

答案 1 :(得分:1)

我不确定你为什么要做DISTINCT。您想知道特定日期的数据,小时数等。

这样做....

Select Date, Operator, 'SumWorkHrs'=sum(total_working_time_h),
  'SumDefects'=sum(no_ofDefects) from {$table_work_hours} 
       Where date='2016-06-03' 

答案 2 :(得分:0)

试试这个:

grades.score