使用Sql Server
我想从两个表中获取最大值
表1
ID Total
101 100
102 600
.....
表2
ID Total
101 300
102 400
....
我希望能够根据ID从两个表中获取最大值。
期望输出:
ID Total
101 300 (max value in table2)
102 600 (max value in table1)
....
...
如何进行查询
需要查询帮助
使用Sql Server
我想从两个表中获取最大值
表1
ID Total
101 100
102 600
.....
表2
ID Total
101 300
102 400
....
我希望能够根据ID从两个表中获取最大值。
期望输出:
ID Total
101 300 (max value in table2)
102 600 (max value in table1)
....
...
如何进行查询
需要查询帮助
SELECT
ID, MAX(Total)
FROM
(
SELECT ID, Total FROM Table1
UNION ALL
SELECT ID, Total FROM Table2
) foo
GROUP BY
ID
; with
q_00 as (
select id, Total from Tbl_1
union all
select id, Total from Tbl_2
)
select id, max(Total)
from q_00
group by id
order by id ;
另一个值得考虑的选项可能是
WITH T(ID, Total)
AS (SELECT ID,
MAX(Total)
FROM Table1
GROUP BY ID
UNION ALL
SELECT ID,
MAX(Total)
FROM Table2
GROUP BY ID)
SELECT ID,
MAX(Total) AS Total
FROM T
GROUP BY ID
ID,Total
,可能会得到更好的计划(未经测试)。