如果不使用一个查询中的VIEW,我可以执行以下操作。
!--CREATE THE VIEW
CREATE OR REPLACE VIEW BDGTMGR
AS
SELECT MANAGERID,SUM(BUDGET) AS BDGT FROM
N_DEPT GROUP BY MANAGERID ;
!-- THEN GET RESULT FROM THE VIEW
SELECT MANAGERID FROM BDGTMGR WHERE BDGT = (select MAX(BDGT) FROM BDGTMGR);
这里N_DEPT可能是原始表,其中包含名为DID,MANAGERID和BUDGET的列。
我想获得控制最高预算的MANAGERID。经理可以控制多个部门。 DID是此表的主键。
我该怎么做?
答案 0 :(得分:2)
select MANAGERID,SUM(BDGT)
from N_DEPT
group by MANAGERID
order by SUM(BDGT) desc limit 1
答案 1 :(得分:1)
你可以这样做:
SELECT aux.MANAGERID
FROM
(SELECT MANAGERID,
SUM(BUDGET) AS BDGT
FROM N_DEPT
GROUP BY MANAGERID) aux
INNER JOIN BDGTMGR b ON b.MANAGERID = aux.MANAGERID
WHERE b.BDGT = (select MAX(BDGT) FROM BDGTMGR);
答案 2 :(得分:0)
以下查询将起作用(根据您的SQL风格进行修改):
SELECT TOP 1 MANAGERID FROM N_DEPT GROUP BY MANAGERID ORDER BY SUM(BUDGET) DESC