sql >> Databáze >  >> RDS >> Database

Jak na čísla pater v SQL

Problém:

Chcete zaokrouhlit číslo dolů na nejbližší celé číslo.

Příklad:

Naše databáze obsahuje tabulku s názvem zaměstnanec s údaji v následujících sloupcích:id , first_name , last_name a hours_worked (pro aktuální měsíc).

id first_name last_name odpracovaných hodin
1 Alan Watson 95
2 Lisa Černá 225
3 Laura Williams 104

Ukažme jméno a příjmení každého zaměstnance spolu s počtem odpracovaných dní. Vzhledem k tomu, že tabulka ukazuje pouze počet odpracovaných hodin a nikoli dnů, musíme si tuto hodnotu spočítat sami.

Pro tento problém budeme předpokládat, že každý zaměstnanec má standardní osmihodinový pracovní den bez nesrovnalostí. Počet odpracovaných dní je tedy počet hodin dělený osmi.

Řešení:

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

Dotaz vrátí jméno a příjmení každého zaměstnance a počet dní, které tento měsíc odpracovali.

last_name first_name odpracovaných dnů
Watson Alan 11
Černá Lisa 28
Williams Laura 13

Diskuse:

Podlaha je jednoduchá matematická operace, která vezme číslo a zaokrouhlí ho dolů na nejbližší celé číslo. Například podlaha 5 je sama o sobě 5, zatímco podlaha 5,1 je také 5. Jako další příklad je patro 4,9 4.

V SQL používáme funkci FLOOR. Číslo se zaokrouhlí a vrátí nejbližší celé číslo, které je mu menší nebo rovno. V našem příkladu musí být počet odpracovaných dnů celé číslo, nikoli číslo s plovoucí desetinnou čárkou. Použili jsme tedy (FLOOR(hours_worked/8) ).


  1. Maximální délka MySQL a GROUP_CONCAT().

  2. Jak mohu získat seznam tabulek v uložené proceduře?

  3. Přehled funkce DBCC CheckDB

  4. Jak napsat aplikaci .Net, která funguje se SqlServerem i Oracle (nyní, když je System.Data.OracleClient zastaralý)