sql >> Databasteknik >  >> RDS >> Database

Hur man golvnummer i SQL

Problem:

Du vill avrunda ett tal nedåt till närmaste heltal.

Exempel:

Vår databas har en tabell som heter anställd med data i följande kolumner:id , first_name , last_name och hours_worked (för innevarande månad).

id förnamn efternamn arbetade timmar
1 Alan Watson 95
2 Lisa Svart 225
3 Laura Williams 104

Låt oss visa för- och efternamnet på varje anställd tillsammans med antalet dagar de arbetat. Eftersom tabellen bara visar antalet arbetade timmar och inte dagar, måste vi själva beräkna detta värde.

För detta problem antar vi att varje anställd har en standard åtta timmars arbetsdag utan oegentligheter. Därför är antalet arbetade dagar antalet timmar dividerat med åtta.

Lösning:

SELECT last_name, first_name, FLOOR(hours_worked/8) AS days_worked
FROM employee;

Frågan returnerar för- och efternamnet på varje anställd och antalet dagar de arbetat denna månad.

efternamn förnamn arbetade dagar
Watson Alan 11
Svart Lisa 28
Williams Laura 13

Diskussion:

Golv är en enkel matematisk operation som tar ett tal och avrundar det nedåt till närmaste heltal. Till exempel är golvet på 5 5 i sig, medan golvet på 5,1 också är 5. Som ett annat exempel är golvet på 4,9 4.

I SQL använder vi FLOOR-funktionen. Det tar talet för att avrunda och returnerar närmaste heltal som är mindre än eller lika med det. I vårt exempel måste antalet arbetade dagar vara ett heltal, inte ett flyttal. Därför använde vi (FLOOR(hours_worked/8) ).


  1. Hur startar man MySQL med --skip-grant-tables?

  2. Postgres analog till CROSS APPLY i SQL Server

  3. Tillåter oracle alternativet för oengagerad läsning?

  4. Java Oracle localhost anslutningsfel (ORA-12505)