🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych
Article #194473

Re: 2 limity

#194473
From: pawel.socha
Date: Mon, 08 Jun 2015 14:49
37 lines
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-mail
References: <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