Portál AbcLinuxu, 10. května 2025 11:43
senzor_id | mereni_id | hodnota ------------------------------- 1 1 12 1 2 13 2 1 12 ...Potřebuji vypsat senzory (senzor_id) seřazené podle hodnoty v prvním měření, pokud mají některé senzory stejné hodnoty, tak podle pořadí v druhém měření, pak podle třetího měření ... Kdyby se to přepsalo na sloupce, tak by to bylo "order by hodnota_mereni_1, hodnota_mereni_2, ...". Jedná se o SŘBD mysql. Jak by měl takový dotaz vypadat?
SELECT senzor_id FROM tabulka ORDER BY senzor_id ASC, mereni_id ASC, hodnota ASC
pokud chces vsechna data, tak takto
SELECT * FROM tabulka ORDER BY senzor_id ASC, mereni_id ASC, hodnota ASC
select senzor_id from senzor s order by( select count(*) from( select m1.senzor_id, case when m1.hodnota > m2.hodnota or m2.hodnota is null then 1 when m1.hodnota < m2.hodnota then -1 else 0 end m1_m2 from mereni m1 left join mereni m2 on m1.senzor_id <> m2.senzor_id and m1.mereni_id=m2.mereni_id ) where m1.senzor_id=s.senzor_id and m1_m2>0 )
select sum(hodnota*100^(4-mereni_id)) as a, senzor_id from mereni group by senzor_id order by a
hodnota_id
. Pokud nema, bud pridat nebo joinovat podle senzor_id and mereni_id
:
select m.senzor_id, m.mereni_id, m.hodnota from mereni m inner join mereni m1 on m1.hodnota_id = m.hodnota_id and m.mereni_id = 1 inner join mereni m2 on m2.hodnota_id = m.hodnota_id and m.mereni_id = 2 inner join mereni m3 on m3.hodnota_id = m.hodnota_id and m.mereni_id = 3 inner join mereni m4 on m4.hodnota_id = m.hodnota_id and m.mereni_id = 4 order by m1.hodnota, m2.hodnota, m3.hodnota, m4.hodnota
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.