【发布时间】:2017-10-02 07:08:02
【问题描述】:
我有两张桌子
table1(水手):
id_sailor name
1 Barondeau
2 Vighetti
table2(航程):
id_ voyage boat id_sailor
1 Juliette 1
2 Juliette 1
3 La belle 2
4 La Belle 1
如何制作这个新表:
n 是特定船上水手的航行次数 -
boat name n
Juliette Barondeau 2
La Belle Barondeau 1
La Belle Vighetti 1
我尝试了什么:
select "table2"."boat", "table1"."name", count("table2"."boat" ) as "n"
from "table1", "table2"
where "table1"."id_sailor" = "table2"."id_sailor"
group by "table2"."name"
;
在 hsqldb 1.8 中,出现此错误“不在聚合函数或 group by 子句中:1b6128f...”
【问题讨论】:
-
n 是特定船上水手的航行次数
-
好的@Wilcar 明白了
-
附注:您应该有一个单独的船桌。否则,示例数据中的
'La belle'与 'La Belle'` 之类的简单错字已经可能导致错误结果。 -
至于
GROUP BY:GROUP BY xyz表示每个 xyz 一个结果行。因此,如果您希望每艘船和水手有一个结果行,则必须按船和水手分组。 -
@Wilcar 您需要将答案标记为已接受。如果您对答案有任何疑虑。然后,让他们知道。这完全是对帮助你的人的不尊重。