Solución á práctica DML sobre 7 consultas frecuentes
Revisión del 15:52 10 nov 2021 de Joselv (discusión | contribuciones) (→Máximo dunha columna por grupo)
Sumario
- 1 Consultas
- 1.1 Máximo valor dunha columna
- 1.2 A fila que ten o valor máximo dunha certa columna
- 1.3 Máximo dunha columna por grupo
- 1.4 Filas que teñen o valor maximo grupal dunha certa columna
- 1.5 Uando variables definidas polo usuario
- 1.6 Usando claves foráneas
- 1.7 Buscando por dúas claves
- 1.8 Calculando visitas por día
- 1.9 Usando AUTO_INCREMENT
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 +---------+-------+