我有这张桌子:Docenza(id, id_facolta, ..., orelez)
Facolta(id, ...)
我想得到的是,对于每一个超级用户来说,只有那些完成了最大数量的密钥集和密钥库数量的密钥库的ID:
id_docenzaP facolta1 max(orelez)
id_docenzaQ facolta2 max(orelez)
...
id_docenzaZ facoltaN max(orelez)
我该怎么做?我就是这么做的:
SELECT DISTINCT ... F.nome, SUM(orelez) AS oreTotali
FROM Docenza D
JOIN Facolta F ON F.id = D.id_facolta
GROUP BY F.nome
我得到一些东西,比如:
docenzaP facolta1 maxValueForidP
docenzaQ facolta1 maxValueForidQ
...
docenzaR facolta2 maxValueForidR
docenzaS facolta2 maxValueForidS
...
docenzaZ facoltaN maxValueForFacoltaN
我怎么能只取每个facolta的最大值呢?
最佳答案
想必,你只是想:
SELECT F.nome, sum(orelez) AS oreTotali
FROM Docenza D JOIN
Facolta F
ON F.id = D.id_facolta
GROUP BY F.nome;
我不确定
SELECT DISTINCT
应该做什么。它几乎从不与GROUP BY
一起使用。. . .
表示您正在选择其他列,而这些列不是所需的结果。