多个分组依据和计数

时间:2018-01-10 21:10:21

标签: sql

我想知道是否有人可以帮助我。以下是我的数据样本集:

FirstName   LastName   Department  Ticket  Hours Shift   DateWorked   Key
Bob         Smith      Sleeves     23235    4     1     2017-01-01    001
Bob         Smith      Sleeves     12345    4     1     2017-01-01    001    
Jim         Bo         Sleeves     12345    8     1     2017-01-01    002
Janet       Moore      Lids        78945    8     2     2017-01-01    003
Jon         Bob        Lids        45621    1.5   3     2017-01-01    004
Jon         Bob        Lids        45621    7.5   3     2017-01-01    004

Bob         Smith      Mugs        12345    8     1      2017-01-02
Jim         Bo         Lids        99999    8     3      2017-01-02

应该返回这样的内容:

DateWorked   Shift    Department  HeadCount
2017-01-01   1        Sleeves     2  (Bob Smith has two entries but counted as one and Jim Bo makes for 2)
2017-01-01   2        Lids        1  (Janet)
2017-01-01   3        Lids        1  (Jon)

请注意所有部门都会轮班工作。这只是一个样本集。每个部门可以有从零到一百的任何地方。

另外一名员工可以在一天内完成多个部门!我不知道如何解释。

这就是我所拥有的。因此,对于这个例子,它并不是对Bob Smith的总结。它把他算作两个。

SELECT Scheduled, Department, [Shift], COUNT(*) as HeadCount
FROM EmployeeTickets
WHERE  Scheduled >= '2017-01-01' AND Scheduled < '2017-12-31'
GROUP BY Scheduled, Department, [Shift]
ORDER BY Scheduled, Department, [Shift]

谢谢。

ETA我不知道它是否有帮助,但在表格中每个条目都有一个密钥,因此1月1日的Bob Smith将拥有当天的密钥。他的社会安全号码也在那里。我试图以其中一种方式分组。

1 个答案:

答案 0 :(得分:1)

只需使用source={{ uri: this.props.cover_URL }}

DISTINCT

当然,如果你有多个同名的人,这将有问题。所以我希望你的桌子上有一些EmployeeID,这样你就可以区分每个员工。

SELECT Scheduled, Department, [Shift], COUNT( DISTINCT FirstName ) as HeadCount
FROM EmployeeTickets
WHERE  Scheduled >= '2017-01-01' AND Scheduled < '2017-12-31'
GROUP BY Scheduled, Department, [Shift]
ORDER BY Scheduled, Department, [Shift]