1

Work、Cost、Durationの3つの列を含むテーブルがあります。3 つの列すべてで発生した最大値を取得する必要があります。2 つの値が同時に発生した場合は、その 2 つの最大値を返します。以下のサンプルデータと結果をご覧ください。

Work    Cost      Duration
 5       2        6
 5       8        7
 6       8        7
 2       2        2
 6       2        6

私は結果を得る必要があります

Work    Cost    Duration
 6       2         7

次のクエリで試しましたが、1 つの列の値を返していますが、それもすべての値のカウントを返しています

select Duration, count(*) as "DurationCount" from SimulationResult
  group by Duration
  order by count(*) desc,Duration desc
4

2 に答える 2

0

次のことを試してください。

select max(t1.a), max(t2.b), max(t3.c)
from
(select a from (
select a, count(a) counta
from #tab
group by a) tempa
having counta = max(counta)) t1,
(select b from (
select b, count(b) countb
from #tab
group by b) tempb
having countb = max(countb)) t2,
(select c from (
select c, count(c) countc
from #tab
group by c) tempc
having countc = max(countc)) t3
于 2013-07-25T10:09:38.913 に答える