Select SQL 子查询中的最大值
Select max value in subquery in SQL
我有如下查询:
select *
from
(select
centre_name, sum(qty) as number1
from
(select
exchange_from_centre_id as cenid,
count(exchange_from_centre_id) as qty
from
as2.exchange
group by
exchange_from_centre_id
union all
select
exchange_to_centre_id as cenid,
count(exchange_to_centre_id) as qty
from
as2.exchange
group by
exchange_to_centre_id), as2.centre c
where
c.centre_id = cenid
group by
centre_name);
这是结果:中心名称和交换数量
Alice Springs Desert Park 1
Werribee Open Range Zoo 6
Kruger National Park 2
Johannesburg Zoo 4
Australia Zoo 2
SanWild Wildlife Sanctuary 5
我想 select 这个结果(第 2 行)的最大值,除了排序和选择第 1 行之外,任何人都可以帮助我进行 MAX 查询。
我使用你的结果查询而不是大查询来简化示例。
我将您的示例更新为有 2 行,最大值为 6。
您在 select 中计算最大值,然后加入原始 table 以带来所有匹配该值的行
SELECT *
FROM (SELECT MAX(Score) Score
FROM Table1) as mV
INNER JOIN Table1 t
ON mv.Score = t.Score
应该可行
select * from (select centre_name, sum(qty) as number1 from
(select exchange_from_centre_id as cenid, count(exchange_from_centre_id) as qty
from as2.exchange
group by exchange_from_centre_id
union all
select exchange_to_centre_id as cenid, count(exchange_to_centre_id) as qty
from as2.exchange
group by exchange_to_centre_id), as2.centre c
where c.centre_id = cenid
group by centre_name) where number1 = (select max(number1) from (select centre_name, sum(qty) as number1 from
(select exchange_from_centre_id as cenid, count(exchange_from_centre_id) as qty
from as2.exchange
group by exchange_from_centre_id
union all
select exchange_to_centre_id as cenid, count(exchange_to_centre_id) as qty
from as2.exchange
group by exchange_to_centre_id), as2.centre c
where c.centre_id = cenid
group by centre_name));
我有如下查询:
select *
from
(select
centre_name, sum(qty) as number1
from
(select
exchange_from_centre_id as cenid,
count(exchange_from_centre_id) as qty
from
as2.exchange
group by
exchange_from_centre_id
union all
select
exchange_to_centre_id as cenid,
count(exchange_to_centre_id) as qty
from
as2.exchange
group by
exchange_to_centre_id), as2.centre c
where
c.centre_id = cenid
group by
centre_name);
这是结果:中心名称和交换数量
Alice Springs Desert Park 1
Werribee Open Range Zoo 6
Kruger National Park 2
Johannesburg Zoo 4
Australia Zoo 2
SanWild Wildlife Sanctuary 5
我想 select 这个结果(第 2 行)的最大值,除了排序和选择第 1 行之外,任何人都可以帮助我进行 MAX 查询。
我使用你的结果查询而不是大查询来简化示例。
我将您的示例更新为有 2 行,最大值为 6。
您在 select 中计算最大值,然后加入原始 table 以带来所有匹配该值的行
SELECT *
FROM (SELECT MAX(Score) Score
FROM Table1) as mV
INNER JOIN Table1 t
ON mv.Score = t.Score
应该可行
select * from (select centre_name, sum(qty) as number1 from
(select exchange_from_centre_id as cenid, count(exchange_from_centre_id) as qty
from as2.exchange
group by exchange_from_centre_id
union all
select exchange_to_centre_id as cenid, count(exchange_to_centre_id) as qty
from as2.exchange
group by exchange_to_centre_id), as2.centre c
where c.centre_id = cenid
group by centre_name) where number1 = (select max(number1) from (select centre_name, sum(qty) as number1 from
(select exchange_from_centre_id as cenid, count(exchange_from_centre_id) as qty
from as2.exchange
group by exchange_from_centre_id
union all
select exchange_to_centre_id as cenid, count(exchange_to_centre_id) as qty
from as2.exchange
group by exchange_to_centre_id), as2.centre c
where c.centre_id = cenid
group by centre_name));