Diferència entre revisions de la pàgina «Funcions SQL»

De wikijoan
Salta a la navegació Salta a la cerca
(Es crea la pàgina amb «<pre> Nom del municipi més llarg select municipi from municipis where length(municipi) = ( select max(length(municipi)) from municipis ) Cruïlles, Monells i Sant S...».)
 
 
(Hi ha una revisió intermèdia del mateix usuari que no es mostren)
Línia 1: Línia 1:
 +
=Referències=
 +
*https://www.sqltutorial.org/sql-functions/
 +
=Teoria=
 +
===Funcions d'agregació de SQL===
 +
*https://www.sqltutorial.org/sql-aggregate-functions/
 +
*AVG()
 +
*COUNT()
 +
*MIN()
 +
*MAX()
 +
*SUM()
 +
===Funcions de cadena de SQL===
 +
*https://www.sqltutorial.org/sql-string-functions/
 +
Hi ha moltes funcions de cadena. Algunes ja les has utilitzat; d'altres les aniràs utilitzant a mida que les necessitis.
 +
===Funcions matemàtiques de SQL===
 +
*https://www.sqltutorial.org/sql-math-functions/
 +
===Funcions de dates de SQL===
 +
*https://www.sqltutorial.org/sql-date-functions/
 +
=Exemples=
 +
===Nom del municipi més llarg===
 
<pre>
 
<pre>
Nom del municipi més llarg
 
 
 
select municipi from municipis where length(municipi) = (
 
select municipi from municipis where length(municipi) = (
 
select max(length(municipi)) from municipis
 
select max(length(municipi)) from municipis
)
+
);
  
 
Cruïlles, Monells i Sant Sadurní de l'Heura
 
Cruïlles, Monells i Sant Sadurní de l'Heura
 +
</pre>
 +
 +
===seleccionar aleatòriament una província===
 +
La manera més fàcil:
 +
<pre>
 +
select provincia from provincies order by rand() limit 1;
 +
</pre>
 +
Una altra manera que hauria de funcionar (però no acaba de funcionar)
 +
<pre>
 +
select rand(); -> dóna un número aleatori entre el 0 i el 0.99999 (decimal)
 +
 +
select round(rand()*51); -> dóna un número aleatori entre el 0 i el 51
  
 +
ho pots comprovar fent:
 +
select distinct round(rand()*51) num from municipis order by num;
  
seleccionar aleatòriament una província;
+
select round(rand()*51)+1; -> dóna un número aleatori entre el 1 i el 52
  
select round(rand()*52);
+
select provincia from provincies where id_prov = (select round(rand()*51)+1); -> no acaba de funcionar del tot? A vegades no retorna cap valor, a vegades retorna dos valors?
select distinct round(rand()*51)+1 as num from municipis order by num;
 
select round(rand()*51)+1;
 
select provincia from provincies where id_prov IN (select round(rand()*51)+1);
 
---
 
select provincia from provincies limit 1 offset x
 
 
</pre>
 
</pre>
  
 
{{Autor}}, febrer 2022
 
{{Autor}}, febrer 2022

Revisió de 15:28, 8 feb 2022

Referències

Teoria

Funcions d'agregació de SQL

Funcions de cadena de SQL

Hi ha moltes funcions de cadena. Algunes ja les has utilitzat; d'altres les aniràs utilitzant a mida que les necessitis.

Funcions matemàtiques de SQL

Funcions de dates de SQL

Exemples

Nom del municipi més llarg

select municipi from municipis where length(municipi) = (
select max(length(municipi)) from municipis
);

Cruïlles, Monells i Sant Sadurní de l'Heura

seleccionar aleatòriament una província

La manera més fàcil:

select provincia from provincies order by rand() limit 1;

Una altra manera que hauria de funcionar (però no acaba de funcionar)

select rand(); -> dóna un número aleatori entre el 0 i el 0.99999 (decimal)

select round(rand()*51); -> dóna un número aleatori entre el 0 i el 51

ho pots comprovar fent:
select distinct round(rand()*51) num from municipis order by num;

select round(rand()*51)+1; -> dóna un número aleatori entre el 1 i el 52

select provincia from provincies where id_prov = (select round(rand()*51)+1); -> no acaba de funcionar del tot? A vegades no retorna cap valor, a vegades retorna dos valors?

creat per Joan Quintana Compte, febrer 2022