架构如下:
船舶(名称、发射年份、国家、数量、枪大小、排水量)
战斗(船,战名,结果)
其中名称和船是相等的。我的意思是如果“密苏里”是名称的元组结果之一,“密苏里”也将作为船舶的元组结果出现。
(即名称='密苏里',船='密苏里)他们是一样的
现在我的问题是我会做什么样的 SQL 语句来列出拥有最多枪支的战列舰列表中的战列舰(即 gunSize)
我试过了:
SELECT name, max(gunSize)
FROM Ships
但这给了我错误的结果。
然后我尝试了:
SELECT s.name
FROM Ships s,
(SELECT MAX(gunSize) as "Largest # of Guns"
FROM Ships
GROUP BY name) maxGuns
WHERE s.name = maxGuns.name
但是后来 SQLite 管理员给了我一个错误,说即使我将它指定为别名,也不存在这样的列“maxGuns”:maxGuns
你们有谁知道这个问题的正确查询是什么?谢谢!