Chell 164 Napisano 28 Styczeń siema, mam taką tabelkę: id|nazwa |typ --+--------+------- 1 |jabłko |owoc 2 |śliwka |owoc 3 |wiśnia |owoc 4 |ziemniak|warzywo 5 |batat |warzywo 6 |marchew |warzywo chcę zrobić zapytanie, które wybierze mi naprzemiennie owoce i warzywa (także jabłko, ziemniak, śliwka, batat, wiśnia, marchew). są w ogóle takie cuda? (dodam, że owoc, warzywo to nie jedyne wartości, mogą być najróżniejsze - chciałbym je też brać pod uwagę) w idealnym świecie dałoby się to zrealizować po ludzki w sqlalchemy Udostępnij tego posta Odnośnik do posta Udostępnij na innych stronach
gnysek 177 Napisano 28 Styczeń Jedyne co mi wpadło do głowy, to zrobić zapytanie które zwraca co drugi rekord i wtedy union select z zapytaniem przeciwnym. Ewentualnie zapytanie do którego doklejasz numer rzędu (nie id) i robisz jakiś concat zależnie od modulo i potem z tego kolejny select i posortować po tym concat. Ale ogólnie to będzie wolne, tak czy siak. Udostępnij tego posta Odnośnik do posta Udostępnij na innych stronach
gnysek 177 Napisano 29 Styczeń @Chell: https://stackoverflow.com/questions/53957524/mysql-how-to-sort-rows-to-appear-like-this-e-g-1-2-1-2 Generalnie szukałem po "a b a b sorting" oraz "alternate sorting" i jest parę propozycji. 1 Udostępnij tego posta Odnośnik do posta Udostępnij na innych stronach
Chell 164 Napisano 29 Styczeń 1 minutę temu, gnysek napisał: @Chell: https://stackoverflow.com/questions/53957524/mysql-how-to-sort-rows-to-appear-like-this-e-g-1-2-1-2 Generalnie szukałem po "a b a b sorting" oraz "alternate sorting" i jest parę propozycji. oo, dokładnie o to chodziło. próbowałem szukać "order by alternately", ale jedyne sensownego co znalazłem to https://stackoverflow.com/questions/18862522/mysql-order-by-alternate-values, a to kobyła większa niż to jest tego warte. wieczorkiem zaimplementuję, dzięki! 1 Udostępnij tego posta Odnośnik do posta Udostępnij na innych stronach
Chell 164 Napisano 29 Styczeń dobra, nie wytrzymałem i już zaimplementowałem, śmiga jak marzenie: query = self._session.query(Summoner).filter(or_( Summoner.account_id == None, Summoner.modified_at < ttl )).order_by( over( func.row_number(), Summoner.region, (Summoner.rank_id, Summoner.region) ), Summoner.region ) dzięki! 1 Udostępnij tego posta Odnośnik do posta Udostępnij na innych stronach