Select
SELECT id, goodstype, maxcount FROM anytable ORDER BY maxcount DESC - соответственно просто выборка всех значний с сортировкой.
SELECT id, goodstype, maxcount FROM anytable GROUP BY goodstype ORDER BY maxcount DESC - т.е. GROUP BY идёт раньше, то сперва весь результат разбивается на группы а потом уже эти группы сортируются (т.е. берётся первое и единственно значение просто, а оно в свою очередь далеко не всегда максимальное).
И надо было id - соответствовало записи, с этим максимальным значением.
Может кто подскажет грамотный SQL-запрос? Заранее спасибо!
SELECT t.* FROM anytable AS t,temp_table AS t1 WHERE t.goodstype=t1.goodstype AND t.maxcount=t1.maxcount
т.е. просто выбираешь те id, у которых при данном goodstype оказалось наибольшее maxcount.
см. также http://forum.codenet.ru/showthread.php?s=&threadid=14628
Цитата:
Originally posted by gufy
если у тебя mysql>=4.1 то сделай подзапросом, а вообще - способ обычный- берешь топор и рубишь temporary table, в который пихаешь результат твоего запроса, а потом делаешь
SELECT t.* FROM anytable AS t,temp_table AS t1 WHERE t.goodstype=t1.goodstype AND t.maxcount=t1.maxcount
т.е. просто выбираешь те id, у которых при данном goodstype оказалось наибольшее maxcount.
см. также http://forum.codenet.ru/showthread.php?s=&threadid=14628
если у тебя mysql>=4.1 то сделай подзапросом, а вообще - способ обычный- берешь топор и рубишь temporary table, в который пихаешь результат твоего запроса, а потом делаешь
SELECT t.* FROM anytable AS t,temp_table AS t1 WHERE t.goodstype=t1.goodstype AND t.maxcount=t1.maxcount
т.е. просто выбираешь те id, у которых при данном goodstype оказалось наибольшее maxcount.
см. также http://forum.codenet.ru/showthread.php?s=&threadid=14628
Ничего хорошего я в этом способе не вижу. ( И mysql 3.xx.xx).
Есть вариант:
select id,goodstype,max(number) as maxnumbergoods from table group by goodstype order by maxnumbergoods desc;
Но тогда нет привязки к id...
см документацию раздел manual.html#example-Maximum-column-group-row
там все описано включая max-concat trick.