Google bigquery SQL第一次和最后一次出现-通过强制我在“选择”中将所有内容分组来分组
表1 雇员Google bigquery SQL第一次和最后一次出现-通过强制我在“选择”中将所有内容分组来分组,google-bigquery,Google Bigquery,表1 雇员 EmployeeID | StartDateTimestamp | CohortID | CohortName ---------- | ------------------ | -------- | ---------- 1 | 20080101 01:30:00 | 1 | Peanut 1 | 20090204 01:01:00 | 2 | Apple 2 | 20190107 05:52:1
EmployeeID | StartDateTimestamp | CohortID | CohortName
---------- | ------------------ | -------- | ----------
1 | 20080101 01:30:00 | 1 | Peanut
1 | 20090204 01:01:00 | 2 | Apple
2 | 20190107 05:52:14 | 1 | Peanut
3 | 20190311 02:35:26 | 2 | Apple
在路上学习。我在下面的查询将列出所有员工ID,而不仅仅是第一个队列ID和最后一个队列ID。Group by强制我使用员工ID对StartDateTimestamp2进行分组,它仍然列出所有员工ID,与下面的预期结果不符
理想情况下,(首次出现)结果应为:
EmployeeID | HireStartName | StartDateTimestamp2
---------- | ------------- | -------------------
1 | HiredStart | 20080501 01:30:00
1 | DeferredStart | 20090604 01:01:00
2 | HiredStart | 20190115 05:52:14
3 | HiredStart | 20190330 02:35:26
我的问题如下
CohortID | StartDateTimestamp2
-------- | -------------------
1 | 20080501 01:30:00
2 | 20190115 05:52:14
实际问题是:
使用CohortName的第一个实例来确定每个队列的开始日期
结果:
SELECT firsttable.Cohortid,
employeetable.StartDateTimestamp2
FROM Table1 firsttable
INNER JOIN Employee employeetable ON employeetable.employeeid = firsttable.employeeid
对于此数据集,简单聚合应该做到这一点:
Cohort ID | StartDateTimesstamp2
或者,可能:
select cohortID, min(StartDateTimestamp) StartDateTimestamp2
from table1
group by cohortID
3个问题太多了。你应该问一个。此外,您更愿意以表格文本的形式提供数据,以便更容易为愿意提供帮助的人使用。此外,您使用的是mysql还是bigquery?这是两个不同的数据库,具有不同的功能。请仅标记相关的一个。您的查询中没有
分组依据
。您想在哪里使用分组依据
?您好,很抱歉我在编辑您的建议。我需要第二个Employee表中的StartDateTimestamp2,由EmployeeIDSo从表1中选择Cohortid,Employee.StartDateTimestamp2在Employee.employeeid=Table1上内部联接Employee。employeeid
@RoastedCarrot:示例数据的问题是两个表的日期值相同,所以你真正想要的东西很模糊。您可能应该编辑您的问题,以使示例数据更清楚。@RoastedCarrot:我用另一个查询更新了我的答案。这更符合您的需要吗?我尝试了您的答案,得到的错误是t.cohortid是选择列表表达式引用t.cohortid既不是分组的,也不是聚合的。
select
t.cohortid,
min(e.startdatetimestamp2) startdatetimestamp2
from table1 t
inner join employee e on e.employeeid = t.employeeid
group by t.cohort_id