【发布时间】:2021-10-01 08:43:28
【问题描述】:
我有一个关于火车的数据集,其中包含一个客户信息表,该表是一个代表年龄组和该年龄组旅客数量的数字。
ID 表示具有多个出发时间的位置,该位置具有多个年龄组。
数据看起来像这样
| StationID | Time of Departure | TravellerID | Amount of travellers |
|---|---|---|---|
| 1 | 12:13 | 4001 | 30 |
| 1 | 12:13 | 4002 | 15 |
| 1 | 19:45 | 4001 | 10 |
| 1 | 19:45 | 4002 | 20 |
我想总结每次出发的旅客人数 我试着这样编码:
SELECT StationID,[Time of Departure], sum(Amount)
FROM Train_Stations AS TS
INNER JOIN DepartureData AS DD
ON DD.FK_StationID = TS.PK_StationID
INNER JOIN CustomerInfo AS CI
ON CI.FK_StationID = TS.PK_StationID
GROUP BY StationID, [Time of Departure]
结果是这样的:
| StationID | Time of Departure | Amount |
|---|---|---|
| 1 | 12:13 | 75 |
| 1 | 12:13 | 75 |
| 1 | 19:45 | 75 |
| 1 | 19:45 | 75 |
但我想要这样:
| StationID | Time of Departure | Amount |
|---|---|---|
| 1 | 12:13 | 45 |
| 1 | 19:45 | 30 |
【问题讨论】:
-
限定所有列(至少在涉及多个表时)是一种很好的编程习惯。例如
TS.PK_StationID而不仅仅是Amount。 (我们不知道Amount属于哪个表。) -
好提示,我尽量注意这个