Article View: pl.comp.bazy-danych
Article #194475Re: 2 limity
From: PawelS cbrbob(at)wbcd(dot)pl
Date: Sun, 14 Jun 2015 07:29
Date: Sun, 14 Jun 2015 07:29
48 lines
2788 bytes
2788 bytes
merlin pisze: > On Friday, 5 June 2015 16:33:40 UTC+2, Leszek Zur wrote: >> 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 > > Ciepło? Blisko ? > mysql> select * from miasta having populacja > 500 order by 3 desc ; > +---------+----------+-----------+ > | panstwo | miasto | populacja | > +---------+----------+-----------+ > | Francja | Paryz | 2000 | > | Niemcy | Berlin | 2000 | > | Wlochy | Rzym | 1500 | > | Polska | Warszawa | 1000 | > | Niemcy | Dortmund | 1000 | > | Polska | Wroclaw | 700 | > +---------+----------+-----------+ > 6 rows in set (0,00 sec) Moim skromnym zdaniem zdaniem podałeś rozwiązane znając dane wejściowe. Teraz podziel sobie zawartość kolumny "populacja" przez 10 i sprawdź czy zapytanie w dalszym ciągu zwraca oczekiwany wynik ?
Technical Details
Message-ID:
<mljah0$816$1@node1.news.atman.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mailReferences:
<mksc06$7v5$1@news.vectranet.pl> <738cba05-7f80-4922-a4cb-cc80f1bcada8@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: "PawelS cbrbob(at)wbcd(dot)pl" <fake@email.org> Newsgroups: pl.comp.bazy-danych Subject: Re: 2 limity Date: Sun, 14 Jun 2015 09:29:36 +0200 Organization: ATMAN - ATM S.A. Lines: 48 Message-ID: <mljah0$816$1@node1.news.atman.pl> References: <mksc06$7v5$1@news.vectranet.pl> <738cba05-7f80-4922-a4cb-cc80f1bcada8@googlegroups.com> NNTP-Posting-Host: host-89-231-96-70.warszawa.mm.pl Mime-Version: 1.0 X-Trace: node1.news.atman.pl 1434266976 8230 89.231.96.70 (14 Jun 2015 07:29:36 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Sun, 14 Jun 2015 07:29:36 +0000 (UTC) User-Agent: Thunderbird 2.0.0.24 (X11/20110622) In-Reply-To: <738cba05-7f80-4922-a4cb-cc80f1bcada8@googlegroups.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit