我有这张桌子:
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一起使用。. . .表示您正在选择其他列,而这些列不是所需的结果。

07-24 20:36