sql >> Databasteknik >  >> RDS >> Database

Hur man rundar upp ett tal till närmaste heltal i SQL

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.


  1. Vad är bästa praxis för att infoga en post om den inte redan finns?

  2. Byt namn på en kolumn i SQL Server (T-SQL)

  3. Kör inbyggd sql med viloläge

  4. Steg för att installera MySQL8 på CentOS