我正在尝试将一个需求来源与前两个不同的最高需求来源进行比较,以便我可以在SQL中执行一些操作。
以下是我对最大和特定需求的看法,但我无法弄清楚如何找到第二个最大值。我见过for (var i = 1; i < 51; i++) {
$('#hg' + i).change(function () {
if ($('#hg' + i).val() > $('#ag' + i).val()) {
$('#r' + i).val('1');
}
else if ($('#hg' + i).val() < $('#ag' + i).val()) {
$('#r' + i).val('2');
}
else {
$('#r' + i).val('X');
}
})
}
,但我不知道如何将其用于Windows函数。
选择row_id_str,Max_NR,Max_R
max(x) where x <> max(x)
from(
select row_id_str,
MAX(NR_close) OVER (PARTITION BY row_id_str) as Max_NR,
MAX(R_close) OVER (PARTITION BY row_id_str) as Max_R
from(
SELECT row_id_str, demand, close,
sum(if(demand = 'root', close, 0)) as R_close,
sum(if(demand != 'root', close, 0)) as NR_close
FROM [scratch] group by 1,2,3
order by row_id_str, close desc)
group by row_id_str, NR_close, R_close)
group by 1,2,3
答案 0 :(得分:1)
您可以将MAX
与ROW_NUMBER()
结合使用。
围绕它选择一个新选择,然后选择WHERE RowNumber = 2
SELECT
tMax.row_id_str,
tMax.MyMax,
ROW_NUMBER() OVER (ORDER BY(tMax.MyMax)) AS RowNumber
FROM
(SELECT
t.row_id_str,
MAX(t.NR_close)
FROM
table AS t
GROUP BY
t.row_id_str
) AS tMax