Article View: pl.comp.bazy-danych
Article #194473Re: 2 limity
From: pawel.socha
Date: Mon, 08 Jun 2015 14:49
Date: Mon, 08 Jun 2015 14:49
37 lines
2521 bytes
2521 bytes
W dniu piątek, 5 czerwca 2015 16:33:40 UTC+2 użytkownik Leszek Zur napisał: > Baza MySQL. > Mam tabelę z kolumnami: państwo, miasto, mieszkancy. > W tabeli mieszkańcy podana jest ilość mieszkańców danego miasta. > Chce napisać zapytanie, które zwróci mi tą tabelę ale z 2 limitami. > Chcę, żeby zwróciło mi maksimum x miast ale żeby z każdego państwa było > maksimum y miast o największej liczbie mieszkańców. > > Przykładowo dla x=5 i y=2 i następującej tabeli: > Francja Paryż 2000 > Francja Lille 500 > Polska Warszawa 1000 > Polska Wrocław 700 > Polska Opole 500 > Niemcy Berlin 2000 > Niemcy Dortmund 1000 > Włochy Rzym 1500 > > chcę żeby odrzuciło mi Opole (bo przekroczony y dla Polski), oraz > Dortmund i Rzym (bo przekroczony x). > Do tej pory robiłem zapytanie o listę wszystkich państw, dla każdego > państwa pobierałem listę największych miast ograniczoną przez y, > zliczałem ile już mam miast i jak osiągnąłem x to kończyłem. > > Może da się to zapisać jako jedno zapytanie, które będzie pewnie szybsze > od serii wielu mniejszych ? > > Leszek Być może twoim rozwiązaniem jest "order by" wielość_miast oraz "having" wielkosc_miast >= y Tak z glowy: SELECT * from Tabela order by wielość_miast desc having >= y LIMIT x -- Pawel Socha
Technical Details
Message-ID:
<a3dbd85a-de97-46f6-85b9-2bdcaa128cc0@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!h15no1081060igd.0!news-out.google.com!4ni35qgh.1!nntp.google.com!z60no21313qgd.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<mksc06$7v5$1@news.vectranet.pl>Show Full Headers
Complete Article Headers
X-Received: by 10.42.64.15 with SMTP id e15mr31289461ici.12.1433774968183; Mon, 08 Jun 2015 07:49:28 -0700 (PDT) X-Received: by 10.140.95.135 with SMTP id i7mr196810qge.27.1433774968017; Mon, 08 Jun 2015 07:49:28 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!h15no1081060igd.0!news-out.google.com!4ni35qgh.1!nntp.google.com!z60no21313qgd.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.bazy-danych Date: Mon, 8 Jun 2015 07:49:27 -0700 (PDT) In-Reply-To: <mksc06$7v5$1@news.vectranet.pl> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=83.142.191.130; posting-account=6jrjrwoAAABIyAUQ19m1IPHVyeKiXHD0 NNTP-Posting-Host: 83.142.191.130 References: <mksc06$7v5$1@news.vectranet.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <a3dbd85a-de97-46f6-85b9-2bdcaa128cc0@googlegroups.com> Subject: Re: 2 limity From: pawel.socha@freshmail.pl Injection-Date: Mon, 08 Jun 2015 14:49:28 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit