【发布时间】:2019-04-13 21:52:58
【问题描述】:
我正在尝试计算一天内发生和解决的事故数量。存储为“事故”的数据如下所示。每个发生的事故都分配有唯一的事故问题 ID,以及解决它的雇主 ID。请注意,有些事故并非在事故发生的同一天解决,而有些事故是同时发生的。
INSERT INTO Accidents (empid, accident_issue, accident_date, resolved_date) VALUES
('abcd', 'a49b0a4k', '3/12/19 13:25', '3/12/19 13:37'),
('abcd', 'ao3jbvna', '2/1/19 21:16', '2/1/19 21:19'),
('abcd', 'g4b04kcd', '12/12/18 20:37', '12/12/18 21:34'),
('abcd', 'hk9502jb', '12/10/18 21:09', '12/10/18 21:13'),
('abcd', 'cj9rj4vb', '11/30/18 19:44', '11/30/18 19:49'),
('abcd', 'd948mafg', '11/24/18 19:53', '11/26/18 19:55'),
('abcd', 'mkgiud84', '11/24/18 12:48', '11/25/18 14:37'),
('abcd', 'it93hvmv', '11/24/18 12:48', '11/25/18 15:29'),
('efgh', '94jbniv4', '5/17/18 19:56', '5/17/18 20:11'),
('efgh', '5k0bnck5', '4/13/18 15:07', '4/13/18 15:13'),
('efgh', 'mborj3hf', '2/28/18 21:32', '2/28/18 21:51'),
('efgh', 'vkrok4mn', '2/21/18 16:19', '2/21/18 16:35'),
('efgh', '2ivj39cn', '2/20/18 22:01', '2/20/18 22:06'),
('efgh', '0virj3mv', '2/20/18 16:21', '2/20/18 16:23'),
('efgh', 'x20xzn93', '2/9/18 21:16', '2/10/18 21:30'),
('efgh', '49jcn3k5', '2/6/18 19:35', '2/8/18 22:36');
我希望查询结果有每个雇主每天分配和解决的事故数量。
我最初的想法是先分别统计每天发生的事故数量和解决的事故数量,然后将两个表完全连接起来。 这是我迄今为止一直在工作的代码。
SELECT
a.empid,
a.date,
a.number_of_accidents,
b.number_resolved
FROM
(SELECT A1.empid, A1.accident_issue, to_char(accident_date::date, 'yyyy-mm-dd') as date,
count(accident_date) as number_of_accidents
FROM Accidents as A1
GROUP BY A1.empid, A1.accident_issue
) AS a
FULL OUTER JOIN
(SELECT B1.empid, B1.accident_issue, to_char(resolved_date::date, 'yyyy-mm-dd') as date,
count(resolved_date) as number_resolved
FROM Accidents as B1
GROUP BY B1.empid, B1.accident_issue
) AS b
ON a.date = b.date
GROUP BY a.empid, a.date
当分开运行时,两个表 a 和 b 似乎返回了我想要的,但是当放在一起时,由于某种原因,输出被破坏并产生多个重复的行。
我希望结果如下所示
| empid | date | number_of_accidents | number_solved |
|-------|-----------|---------------------|---------------|
| abcd | 11/24/18 | 3 | 0 |
| abcd | 11/25/18 | 0 | 2 |
| abcd | 2/1/19 | 1 | 1 |
| abcd | 3/12/19 | 1 | 1 |
| efgh | 2/20/18 | 2 | 2 |
| efgh | 2/21/18 | 1 | 1 |
似乎是什么问题,我是否朝着正确的方向前进? 任何帮助将不胜感激。谢谢!
【问题讨论】:
-
你能发布一下你当前的输出是什么样子的吗?
标签: postgresql