Diferencia entre revisiones de «Solución á práctica DML sobre 7 consultas frecuentes»

De MediaWiki
Ir a la navegación Ir a la búsqueda
(Página creada con «= Consultas = == Máximo valor dunha columna == Cal é o número de artigo máis alto? <syntaxhighlight lang="sql" line enclose="div" highlight="" > SELECT MAX(article) AS…»)
 
Línea 46: Línea 46:
  
 
== Máximo dunha columna por grupo ==
 
== Máximo dunha columna por grupo ==
 +
Cal é o prezo máis caro por artigo?
  
 +
<syntaxhighlight lang="sql" line enclose="div" highlight="" >
 +
SELECT article, MAX(price) AS price
 +
FROM  shop
 +
GROUP BY article
 +
ORDER BY article;
 +
+---------+-------+
 +
| article | price |
 +
+---------+-------+
 +
|    0001 |  3.99 |
 +
|    0002 | 10.99 |
 +
|    0003 |  1.69 |
 +
|    0004 | 19.95 |
 +
+---------+-------+
 +
</syntaxhighlight>
  
 
== Filas que teñen o valor maximo grupal dunha certa columna ==
 
== Filas que teñen o valor maximo grupal dunha certa columna ==

Revisión del 15:52 10 nov 2021

Consultas

Máximo valor dunha columna

Cal é o número de artigo máis alto?

1 SELECT MAX(article) AS article FROM shop;
2 +---------+
3 | article |
4 +---------+
5 |       4 |
6 +---------+

A fila que ten o valor máximo dunha certa columna

Cal é o número de artigo, vendedor e prezo do artigo máis caro?

Cunha subquerý:

1 SELECT article, dealer, price
2 FROM   shop
3 WHERE  price=(SELECT MAX(price) FROM shop);
4 +---------+--------+-------+
5 | article | dealer | price |
6 +---------+--------+-------+
7 |    0004 | D      | 19.95 |
8 +---------+--------+-------+

Cun LEFT JOIN:

1 SELECT s1.article, s1.dealer, s1.price
2 FROM shop s1
3 LEFT JOIN shop s2 ON s1.price < s2.price
4 WHERE s2.article IS NULL;

Con ordenación descendente de filas obtendo a primera fila coa claúsula LIMIT

1 SELECT article, dealer, price
2 FROM shop
3 ORDER BY price DESC
4 LIMIT 1;
De haber varios artigos empatados a prezo máis caro (19.95) amosaríase só un deles

Máximo dunha columna por grupo

Cal é o prezo máis caro por artigo?

 1 SELECT article, MAX(price) AS price
 2 FROM   shop
 3 GROUP BY article
 4 ORDER BY article;
 5 +---------+-------+
 6 | article | price |
 7 +---------+-------+
 8 |    0001 |  3.99 |
 9 |    0002 | 10.99 |
10 |    0003 |  1.69 |
11 |    0004 | 19.95 |
12 +---------+-------+

Filas que teñen o valor maximo grupal dunha certa columna

Uando variables definidas polo usuario

Usando claves foráneas

Buscando por dúas claves

Calculando visitas por día

Usando AUTO_INCREMENT