Problem:
Du vill avrunda ett tal uppåt till närmaste heltal.
Exempel:
Vår databas har en tabell som heter hyra med data i följande kolumner:id
, city
, area
, och bikes_for_rent
.
id | stad | område | cyklar_till_hyra |
---|---|---|---|
1 | Los Angeles | 1302.15 | 1000 |
2 | Fenix | 1340.69 | 500 |
3 | Fargo | 126,44 | 101 |
Låt oss visa varje stads namn tillsammans med förhållandet mellan dess yta och antalet cyklar att hyra. Detta förhållande ska vara ett heltal.
Lösning:
SELECT city, CEILING(area/bikes_for_rent) AS ratio FROM rent;
Frågan returnerar varje stad med förhållandet som ett heltal av avrundat området per cykel.
id | stad | förhållande |
---|---|---|
1 | Los Angeles | 2 |
2 | Fenix | 3 |
3 | Fargo | 2 |
Diskussion:
Liksom dess motsvarighet golv är tak en matematisk operation som tar ett tal och avrundar det uppåt till närmaste heltal. Till exempel är taket på 5 5, och så är taket på 4.1.
SQL använder CEILING
funktion för att utföra denna beräkning. Det krävs ett enda argument:kolumnen vars värden du vill runda av till närmaste heltal.
I vårt exempel skulle vi vilja beräkna hur många kvadratmeter (avrundat uppåt till närmaste heltal) det finns per cykel. I vårt exempel använde vi CEILING
som så:CEILING(area/bikes_for_rent)
). Detta returnerar ett heltalsresultat, inte en float.