【发布时间】:2016-02-08 21:09:39
【问题描述】:
假设我有两张桌子,一张用于探测器,一张用于每个探测器进行的外星人遭遇..
PROBE
id probe_launch_date
-------- -----------------
1 12/03/2214
2 02/06/2215
3 07/09/2215
ENCOUNTER
id encounter_species encounter_date probe_id
----------- ---------------- -------------- --------
1 Klingons 01/06/2215 1
2 Romulans 09/15/2215 2
3 Vulcans 11/15/2215 2
我想查看每个探测器自发射之日起与外星人相遇的次数,并且我希望数据按探测器发射后的一周分组。因此,例如对于探针 2,结果集可能看起来像
week encounter
---- --------
31 1
40 1
这是我第一次破解 SQL..
SELECT WEEK(a.probe_launch_date) as launch_week, b.COUNT(*)
as num_of_encounters FROM probe a, encounter b
where a.id = b.probe_id and a.id = 2 GROUP BY WEEK(a.probe_launch_date)
这当然没用。如何修复或重写它?
【问题讨论】:
-
week()是mysql函数遇到id = 1会返回1。
-
b.COUNT( * ) 不好 ==> COUNT(b.* )
标签: mysql datetime join group-by