SELECT
pid, SUM(hourslogged) AS totalhours
FROM
flightskills
GROUP BY
pid
HAVING
SUM(hourslogged) > 1000
答案 0 :(得分:2)
当您摆脱having
时,我不知道您为什么专注于join
子句:
select f.pid, sum (f.hourslogged) as Totalhours
from flightskills f
group by f.pid
having sum(f.hourslogged) > 1000;
如果您真的对having
感到沮丧,请使用子查询:
select f.*
from (select f.pid, sum (f.hourslogged) as Totalhours
from flightskills f
group by f.pid
) f
where Totalhours > 1000;
答案 1 :(得分:0)
WITH f as (select pid, sum (hourslogged) as Totalhours
from flightskills
group by pid)
SELECT p.pid, f.Totalhours
from pilots p join f on p.pid = f.pid
where f.Totalhours > 1000
答案 2 :(得分:0)
您可以使用窗口功能来做到这一点:
SELECT f.pid, f.totalhours
FROM (SELECT pid, SUM(hours) AS totalhours FROM flightskills GROUP BY pid) f
WHERE f.totalhours > 1000