Name Value AnotherColumn
-----------
Pump 1 8000.0 Something1
Pump 1 10000.0 Something2
Pump 1 10000.0 Something3
Pump 2 3043 Something4
Pump 2 4594 Something5
Pump 2 6165 Something6
Моя таблица выглядит примерно так. Я хотел бы знать, как выбрать максимальное значение для каждого насоса.
select a.name, value from out_pumptable as a,
(select name, max(value) as value from out_pumptable where group by posnumber)g where and g.value = value
этот код выполняет свою работу, но я получаю две записи о насосе 1, поскольку в нем есть две записи с одинаковым значением.
GROUP BY
. Строго говоря,GROUP BY
каждый столбец в вашемSELECT
должен быть либо в вашем,GROUP BY
либо использоваться в агрегатной функции.SELECT b.name, MAX(b.value) as MaxValue, MAX(b.Anothercolumn) as AnotherColumn FROM out_pumptabl INNER JOIN (SELECT name, MAX(value) as MaxValue FROM out_pumptabl GROUP BY Name) a ON a.name = b.name AND a.maxValue = b.value GROUP BY b.Name
Обратите внимание, что это было бы намного проще, если бы у вас был первичный ключ. Вот пример
SELECT * FROM out_pumptabl c WHERE PK in (SELECT MAX(PK) as MaxPK FROM out_pumptabl b INNER JOIN (SELECT name, MAX(value) as MaxValue FROM out_pumptabl GROUP BY Name) a ON a.name = b.name AND a.maxValue = b.value)
источник
select name, value from( select name, value, ROW_NUMBER() OVER(PARTITION BY name ORDER BY value desc) as rn from out_pumptable ) as a where rn = 1
источник
id DESC
наPARTITION
и завернул этот запрос вLEFT OUTER JOIN as grades ON grades.enrollment_id = enrollment.id
и отлично работает.select Name, Value, AnotherColumn from out_pumptable where Value = ( select Max(Value) from out_pumptable as f where f.Name=out_pumptable.Name ) group by Name, Value, AnotherColumn
Попробуйте вот так, работает.
источник
select * from (select * from table order by value desc limit 999999999) v group by v.name
источник
SELECT DISTINCT (t1.ProdId), t1.Quantity FROM Dummy t1 INNER JOIN (SELECT ProdId, MAX(Quantity) as MaxQuantity FROM Dummy GROUP BY ProdId) t2 ON t1.ProdId = t2.ProdId AND t1.Quantity = t2.MaxQuantity ORDER BY t1.ProdId
это даст вам представление.
источник