No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso Práctico de SQL

Curso Práctico de SQL

Israel Vázquez Morales

Israel Vázquez Morales

Eres lo máximo

17/29
Recursos

Aportes 230

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

-- El minimo (solo nombre)

SELECT MIN(nombre)
FROM alumnos;

-- El minimo por id de tutor ordenados por ID

SELECT tutor_id,MIN(nombre)
FROM alumnos
GROUP BY tutor_id
ORDER BY tutor_id;

Una versión para MySQL SIN utilizar las window function, en una ocasion me toco trabajar con una BD DB2 y había que ingeniarse siempre como hacerlo todo con Select y Sub Selects. Por si a alguien le sirve, es otra perspectiva mismo resultado.

SELECT 
    CONCAT( '[', MAX(A.carrera_id), ' - ', MIN(A.carrera_id), ']' ) AS Rango_Id_Interseccion
    FROM (
        SELECT 
            carrera_id
            FROM platzi.alumnos 
                WHERE carrera_id IN (
                    SELECT tutor_id  FROM platzi.alumnos GROUP BY tutor_id    
                )
                GROUP BY carrera_id
    ) AS A

El reto se puede hacer con menos líneas de código y más directo sin subquerys así:

SELECT numrange(MIN(tutor_id),MAX(tutor_id)) * numrange(MIN(carrera_id),MAX(carrera_id))
FROM platzi.alumnos;

Mi reto:

SELECT MIN(nombre)
FROM platzi.alumnos
GROUP BY nombre
ORDER BY nombre DESC

SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id DESC;```

Mi respuesta

--minimo nombre de alumnos
SELECT MIN(nombre)
FROM platzi.alumnos;

--minimo nombre con id de tutor
SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id;

Hola adicionalmente al reto platzi, me tomé el siguiente reto personal:

/* Reto Personal: El estudiante que se matriculó de ultimo en cada carrera*/

SELECT *
FROM(
	SELECT DISTINCT  MAX(fecha_incorporacion) as t, carrera_id
	FROM platzi.alumnos AS a1
	GROUP BY carrera_id
) AS seleccion 

INNER JOIN platzi.alumnos
ON seleccion.t = fecha_incorporacion
ORDER BY alumnos.carrera_id;

17. Eres lo máximo

SELECT fecha_incorporacion
FROM platzi.alumnos
ORDER BY fecha_incorporacion DESC
LIMIT 1;

SELECT carrera_id, 
	MAX(fecha_incorporacion)
FROM platzi.alumnos
GROUP BY carrera_id
ORDER BY carrera_id;

-- RETO

SELECT MIN(nombre) AS nombre_minimo
FROM platzi.alumnos;

SELECT MIN(nombre) AS nombre_minimo, tutor_id
FROM platzi.alumnos
GROUP BY tutor_id;

Estaba intentando cumplir el reto y me desvie, termine buscando las filas que contenian el mismo nombre y el mismo tutor_id, les dejo la query quiza a alguien le parece interesante o encuentra una mejor manera de realizarla!

SELECT nombre, tutor_id, id
FROM platzi.alumnos
WHERE id IN(
	SELECT id FROM(
	SELECT id, ROW_NUMBER() OVER(
		PARTITION BY
		nombre,
		tutor_id
	ORDER BY nombre ASC) AS row
		FROM platzi.alumnos) AS id_duplicates
	WHERE row > 1)
ORDER BY nombre, tutor_id, id;
--El minimo nombre que existe en nuestra tabla
SELECT MIN(nombre) AS nombre_alumnos
FROM platzi.alumnos;  

-- El minimo por id de tutor ordenados 
SELECT tutor_id AS tutor,MIN(nombre) AS nombre_alumno
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;

Desafío:

-- Reto: extraer el minimo nombre, alfabeticamente, que existe en nuestra tabla
-- de toda la tabla y el minimo por id de tutor

-- Nombre mínimo alfabeticamente hablando

SELECT nombre
FROM platzi.alumnos
ORDER BY nombre
LIMIT 1;

-- Nombre mínimo alfabeticamente hablando por tutor_id

SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;

Mis respuestas:

SELECT tutor_id, nombre
FROM platzi.alumnos
GROUP BY tutor_id, nombre
ORDER BY nombre DESC;

SELECT tutor_id, MAX(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;
/* Minimo nombre de toda la tabla */
SELECT min(nombre) FROM alumnos

/* Minimo por id de tutor */
SELECT tutor_id, min(nombre)
FROM alumnos
GROUP BY tutor_id 
ORDER BY tutor_id 

Mi solución 😃

SELECT int4range(minimo_id, maximo_id) * int4range(min_tutor, max_tutor)
FROM (
	SELECT min(id) as minimo_id, max(id) as maximo_id, min(tutor_id) as min_tutor, max(tutor_id) as max_tutor
	FROM platzi.alumnos
	) as min_max

MI reto

.-1

SELECT nombre
FROM platzi.alumnos 
ORDER BY nombre
;```


# .-2
```SELECT min(nombre),tutor_id
FROM platzi.alumnos 
GROUP BY tutor_id
ORDER BY tutor_id 
;
```js -- Ejericios aleatorios -- Cantidad de Estudiantes por carrera select count(*) as personas, carrera_id from alumnos a group by carrera_id order by personas ```
```js Puedes hacer una consulta para verificar si hay coincidencia en los valores:*/ SELECT * FROM platzi.alumnos WHERE tutor_id BETWEEN (SELECT MIN(carrera_id) FROM platzi.alumnos) AND (SELECT MAX(carrera_id) FROM platzi.alumnos); /* Este query busca todos los registros donde el tutor_id se encuentre dentro del rango de IDs de las carreras. Encontrar los IDs que coinciden Si deseas encontrar los IDs de los tutores que coinciden exactamente con los de las carreras, puedes hacer una comparación directa:*/ SELECT DISTINCT tutor_id FROM platzi.alumnos WHERE tutor_id IN (SELECT carrera_id FROM platzi.alumnos); ```![](https://static.platzi.com/media/user_upload/image-5f1d634e-9b1a-494b-9ab6-975037ffae59.jpg)
```js SELECT MIN(nombre) FROM alumnos; SELECT tutor_id, MIN(nombre) as nombreAlumno FROM alumnos GROUP BY tutor_id; ```
```ts --De toda la tabla: SELECT nombre FROM platzi.alumnos ORDER BY nombre DESC LIMIT 1; --Agrupado por el id del tutor SELECT tutor_id, MAX(nombre) FROM platzi.alumnos GROUP BY tutor_id ORDER BY tutor_id ASC; ```
Minimo nombre de la Base de Datos: Método 1: ![](https://static.platzi.com/media/user_upload/image-652dabbf-514f-4868-b668-2bdac711ef63.jpg) Método 2: ![](https://static.platzi.com/media/user_upload/image-f5fb3d43-9fb0-40af-b549-8feae8f8d46a.jpg) Minimo Nombre por tutor\_id Ordenado: ![](https://static.platzi.com/media/user_upload/image-5a1e3cc7-49ca-497d-b142-2569322948f0.jpg)
SELECT nombre FROM platzi.alumnos ORDER BY nombre LIMIT 1 SELECT tutor\_id, MIN(nombre) FROM platzi.alumnos GROUP BY tutor\_id ORDER BY tutor\_id
hola mis resultados \-- RETO 1 clase 17 sacar el minimo nombre por id tutor select tutor\_id, MIN(nombre) from platzi.alumnos group by tutor\_id order by tutor\_id ; \-- RETO 2 clase 17 sacar el minimo nombre de toda la tabla. select MIN(nombre) from platzi.alumnos ;
```js SELECT MIN(nombre) AS nombre FROM platzi.alumnos SELECT tutor_id, MIN(nombre) AS nombre FROM platzi.alumnos GROUP BY tutor_id ORDER BY tutor_id ```SELECT MIN(nombre) AS nombre FROM platzi.alumnos SELECT tutor\_id, MIN(nombre) AS nombre FROM platzi.alumnos GROUP BY tutor\_id ORDER BY tutor\_id
Aqui mi reto: ![](https://static.platzi.com/media/user_upload/Screenshot%202024-04-22%2012.09.06-737d932a-a646-45b6-a219-404c6519f54b.jpg)
```js SELECT MIN(nombre) FROM platzi.alumnos SELECT tutor_id, MIN(nombre) FROM platzi.alumnos GROUP BY 1 ORDER BY 2 ```
```js --SOLO EL NOMBRE MINIMO SELECT nombre FROM platzi.alumnos ORDER BY nombre ASC LIMIT 1; --SOLO EL NOMBRE MINIMO CON TODOS SUS DATOS SELECT * FROM platzi.alumnos WHERE nombre = ( SELECT MIN (nombre) FROM platzi.alumnos ); --EL NOMBRE MINIMO POR CADA TUTOR SELECT tutor_id, MIN (nombre) FROM platzi.alumnos GROUP BY tutor_id ORDER BY tutor_id; --EL NOMBRE MINIMO CON TODOS SUS DATOS POR CADA TUTOR SELECT estudiantes.* FROM platzi.alumnos AS estudiantes JOIN ( SELECT tutor_id, MIN(nombre) AS nombre_minimo FROM platzi.alumnos GROUP BY tutor_id ) AS sub ON estudiantes.tutor_id = sub.tutor_id AND estudiantes.nombre = sub.nombre_minimo ORDER BY estudiantes.tutor_id; ```
RETO CON LIMIT ![](https://static.platzi.com/media/user_upload/image-bae05ccd-b987-4a5f-bf9a-4903d66e0e8f.jpg) CON GRUPO DE TUTOR\_ID ![](https://static.platzi.com/media/user_upload/image-d05bc77c-b30a-4719-8601-b8dd0d71e3bf.jpg)
SELECT tutor\_id, MIN(nombre) FROM platzi.alumnos GROUP BY tutor\_id ORDER BY tutor\_id DESC;
`Reto terminado:` ```js SELECT MIN(nombre) FROM platzi.alumnos; SELECT nombre FROM platzi.alumnos ORDER BY nombre DESC LIMIT 1; SELECT tutor_id, MIN(nombre) FROM platzi.alumnos GROUP BY tutor_id ORDER BY tutor_id; ```SELECT nombre FROM platzi.alumnos ORDER BY nombre DESC LIMIT 1; SELECT tutor\_id, MIN(nombre) FROM platzi.alumnos GROUP BY tutor\_id ORDER BY tutor\_id;
Hasta el momento el mejor! curso de Platzi.
Esta fue mi solución: ```js SELECT MIN(nombre) FROM platzi.alumnos; SELECT tutor_id, MIN(nombre) FROM platzi.alumnos GROUP BY tutor_id ORDER BY tutor_id; ```
Mi respuesta:
La sección de comentarios me pone un nombre que no tengo
Esta es mi respuesta:
SELECT int4range(MIN(tutor\_id),MAX(tutor\_id)) \* int4range(MIN(carrera\_id),MAX(carrera\_id)) FROM platzi.alumnos;
\-- Por limit SELECT nombre, tutor\_id FROM platzi.alumnos GROUP BY nombre, tutor\_id ORDER BY nombre ASC \--POR MIN SELECT tutor\_id, MIN(nombre) FROM platzi.alumnos GROUP BY tutor\_id ORDER BY tutor\_id ASC;
```js SELECT MIN(NOMBRE) FROM PLATZI.alumnos SELECT TUTOR_ID, MIN(NOMBRE) FROM PLATZI.alumnos GROUP BY TUTOR_ID ORDER BY TUTOR_ID ```SELECT MIN(NOMBRE) FROM PLATZI.alumnos SELECT TUTOR\_ID, MIN(NOMBRE) FROM PLATZI.alumnos GROUP BY TUTOR\_ID ORDER BY TUTOR\_ID
SELECT
    tutor_id,
    MAX(carrera_id) - MIN(carrera_id) AS diferencia_carrera_id,
    MAX(tutor_id) - MIN(tutor_id) AS diferencia_tutor_id
FROM platzi.alumnos
GROUP BY tutor_id;
MAX(carrera_id) - MIN(carrera_id) calcula la diferencia entre el valor máximo y mínimo de carrera_id para cada grupo de tutor_id.
MAX(tutor_id) - MIN(tutor_id) calcula la diferencia entre el valor máximo y mínimo de tutor_id para cada grupo de tutor_id.
-- Ejercicio 8 / Treatraer el minimo nombre alfabeticamente de toda la tabla y el minimo nombre agrupado por tutor id

-- Traigo el minimo nombre alfabeticamente de toda la tabla de alumnos
SELECT MIN(nombre) AS menor_nombre
FROM platzi.alumnos

-- Traigo el minimo nombre alfabeticamente agrupado por tutor id
SELECT MIN(nombre) AS menor_nombre_por_tutor
FROM platzi.alumnos
GROUP BY tutor_id;

PARA EL MAXIMO NOMBRE

SELECT tutor_id, max(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id ;
\-- Valores minimos ```js SELECT MIN(nombre) FROM platzi.alumnos; ``` \-- Valores minimos agrupados ```js SELECT tutor_id, MIN(nombre) AS primer_nombre_alf FROM platzi.alumnos GROUP BY tutor_id ORDER BY tutor_id; ```
Genial este curso, gracias

Mi solución ordenando por nombre para identificar cual es el MÍNIMO nombre

-- Máximo absoluto de la tabla --
SELECT	fecha_incorporacion
FROM	platzi.alumnos
ORDER BY fecha_incorporacion DESC
LIMIT 1;

-- Intento por GROUP BY --
SELECT	carrera_id, fecha_incorporacion
FROM	platzi.alumnos
GROUP BY carrera_id, fecha_incorporacion
ORDER BY fecha_incorporacion DESC;

-- Funcion MAX --
SELECT	carrera_id, MAX(fecha_incorporacion)
FROM	platzi.alumnos
GROUP BY carrera_id
ORDER BY carrera_id;
La respuesta por tutor id es Ali: La query me quedó así: SELECT tutor\_id, MIN (nombre) FROM platzi.alumnos GROUP BY tutor\_id ORDER BY tutor\_id
```js -- Minimo nombre alfabeticamente que existe en la tabla platzi.alumnos SELECT MIN(nombre) FROM platzi.alumnos; -- Minimo nombre alfabeticamente que existe en la tabla agrupado por el tutor_id SELECT tutor_id, MIN(nombre) FROM platzi.alumnos GROUP BY tutor_id ORDER BY tutor_id; ```-- Minimo nombre alfabeticamente que existe en la tabla platzi.alumnos SELECT MIN(nombre) FROM platzi.alumnos; \-- Minimo nombre alfabeticamente que existe en la tabla agrupado por el tutor\_id SELECT tutor\_id, MIN(nombre) FROM platzi.alumnos GROUP BY tutor\_id ORDER BY tutor\_id;
select numrange( (select min(tutor\_id)from platzi.alumnos where tutor\_id=carrera\_id), (select max(tutor\_id)from platzi.alumnos where tutor\_id=carrera\_id) )\*numrange( (select min (carrera\_id)from platzi.alumnos where tutor\_id=carrera\_id), (select max (carrera\_id)from platzi.alumnos where tutor\_id=carrera\_id) );

Esto me ayudo a entender. Aquí se ve claramente que Wanda tiene el tutor_id 9 y si miran en la segunda consulta se ve que Terencio es el alumno que tiene el id 9

Mi solución:

select tutor_id, min(nombre)
from platzi.alumnos
group by tutor_id
order by tutor_id

RETO:

RETO:

RETO:

Esta seria mi solución al reto

-- El mínimo por nombre

SELECT MIN (nombre)
FROM platzi.alumnos


-- El mínimo, ordenado por id de tutor

SELECT tutor_id, 
	MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;
<SELECT 
	int4range(
		MIN (carrera_id),
		MAX(carrera_id)) *
	int4range(
		MIN (tutor_id),
		MAX(tutor_id))
	FROM platzi.alumnos> 

RETO: traer datos cuando el tutor_id y carrera_id sea entre 1,3


SELECT * FROM platzi.alumnos
WHERE (tutor_id BETWEEN 1 AND 3) AND (carrera_id BETWEEN 1 AND 3);

El mas facil hasta ahora 😃
(por lo menos para mi)

select min(nombre), tutor_id
from platzi.alumnos
group by tutor_id
order by tutor_id desc;

Mi solución

El mínimo nombre por orden alfabético de toda la tabla

SELECT nombre
FROM platzi.alumnos
ORDER BY nombre ASC
LIMIT 1;

El mínimo nombre por tutor_id

SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;
/* Mímino del nombre de toda la tabla*/
SELECT MIN(nombre) 
FROM platzi.alumnos
GROUP BY nombre
ORDER BY nombre
LIMIT 1;
/* Mímino del nombre por id del tutor*/
SELECT tutor_id, nombre
FROM platzi.alumnos
GROUP BY tutor_id, nombre
ORDER BY tutor_id, MIN (nombre);

El mínimo nombre alfabeticamente de toda la tabla y el mínimo por cada id de tutor

--el mínimo por cada id de tutor--
SELECT	tutor_id, MIN(nombre)
FROM	platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;

--mínimo nombre alfabeticamente de toda la tabla--
SELECT MIN(nombre)
FROM  platzi.alumnos;

Solución a los retos:

–Tarea: mínimo nombre alfabeticamente que existe en nuestra tabla por tutor_id
–Mínimo de toda la tabla
SELECT MIN(nombre)
FROM platzi.alumnos

–Mínimo nombre por id_tutor
SELECT tutor_id, MIN(nombre) AS nombre
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id ASC;

--Nombre minimo alfabeticamente de toda la tabla


SELECT MIN(LOWER(nombre)) 
FROM platzi.alumnos


--Nombre minimo alfabetico agrupado por ID de tutor

SELECT tutor_id, MIN(LOWER(nombre)) AS nombre_minimo
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id

Reto: sacar el minimo nombre que aparece en la tabla (primero sacar el minimo de toda la tabla y luego hacer le minimo por id de tutor

SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id 
ORDER BY tutor_id ASC;

✔ Comparto mis soluciones ⭐

SELECT nombre
FROM platzi.alumnos
ORDER BY nombre ASC
LIMIT 1;

SELECT MIN(nombre)
FROM platzi.alumnos;

SELECT tutor_id, MIN(nombre) AS min_nombre_alumno
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;
--Reto- sacar el mínimo nombre (ordenado alfabéticamente) con los dos métodos

--Limit
SELECT nombre FROM platzi.alumnos
ORDER BY nombre ASC
LIMIT 1;

--MIN por id de tutor
SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY MIN (nombre);

Mi aporte

SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;

Resolución del reto:

Mínimo nombre por orden alfabético:

SELECT MIN (nombre)
FROM platzi.alumnos; 

Mínimo por id tutor:

SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;

mi solucion:

select 

INT4RANGE(MIN(carrera_id),MAX(carrera_id)) 
* 
INT4RANGE(MIN(tutor_id),MAX(tutor_id))

FROM PLATZI.ALUMNOS

mi aporte al reto:

--- minimo nombre alfabeticamente (reto)

SELECT MIN (Nombre)
FROM curso.alumnos
GROUP BY nombre
ORDER BY nombre DESC
Limit 1;

--- minimo nombre alfabeticamente por tutor (reto)

SELECT tutor_id, MIN(nombre)
FROM curso.alumnos
GROUP BY tutor_id, nombre
ORDER BY tutor_id DESC

–SACAR EL MINIMO DE TODA LA TABLA
SELECT MIN (nombre) AS minimo_tabla
FROM platzi.alumnos;

–MINIMOS POR TUTOR_ID
SELECT tutor_id, MIN(nombre) AS minimo_nombre
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;

Otra forma de hacer el ejercicio visto en clase es con la función de venta sql

SELECT carrera_id,fecha_incorporacion
FROM (
	SELECT 
		ROW_NUMBER() OVER(
			PARTITION BY
				carrera_id
			ORDER BY fecha_incorporacion DESC
		) AS row,
		*
		FROM platzi.alumnos
	) AS ca
WHERE ca.row = 1
ORDER BY carrera_id, fecha_incorporacion DESC;

SELECT MIN(nombre) AS min_nombre_global
FROM platzi.alumnos;

SELECT tutor_id, MIN(nombre) AS min_nombre_por_tutor
FROM platzi.alumnos
GROUP BY tutor_id;

SELECT MIN(nombre)
FROM platzi.alumnos;

SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id;

Mi solucion:

SELECT nombre
FROM platzi.alumnos
ORDER BY fecha_incorporacion ASC
LIMIT 1;

SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id;

SELECT nombre
from platzi.alumnos
ORDER BY nombre DESC
LIMIT 1;

SELECT tutor_id, MAX(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id

Hola! corregí mi código

SELECT tutor_id, MIN (nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;

Hola! así quedó mi partcipación

SELECT MIN (nombre)
FROM platzi.alumnos;

SELECT nombre
FROM platzi.alumnos
GROUP BY nombre
ORDER BY nombre DESC;

SELECT carrera_id, MIN (nombre)
FROM platzi.alumnos
GROUP BY carrera_id
ORDER BY carrera_id;

Mi solución al reto de esta clase:

SELECT MIN(nombre)
FROM platzi.alumnos;
SELECT nombre, MIN(nombre)
FROM platzi.alumnos
GROUP BY nombre
ORDER BY nombre;

Mi respuesta. Para el primer caso, lo hice de dos formas:

--sacar minimo nombre alfabeticamente de toda la tabla 
select nombre from platzi.alumnos 
order by nombre asc
Limit 1;

select min(nombre) from platzi.alumnos;

Para el segundo caso, hice una simple (como lo enseñó el profe en el vídeo):

select min(nombre), tutor_id
from platzi.alumnos 
group by tutor_id
order by tutor_id;

y otra un poco más complicada usando window function:

select * from (
	select tutor_id, nombre,
	row_number() over(partition by tutor_id order by nombre asc) as row_num
	from platzi.alumnos
) as nombre_by_tutorid where row_num=1
SELECT fecha_incorporacion, tutor_id
FROM platzi.alumnos
GROUP BY tutor_id, fecha_incorporacion 
ORDER BY fecha_incorporacion DESC;

SELECT tutor_id, MIN (fecha_incorporacion)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;

me siento re frustrado, creo que se deberian explicar mejor estas nuevas consultas. Trate de tomar el rango devuelto para usarlo en otra consulta y me salen un millon de errores.

select tutor_id, MIN(nombre)
from platzi.alumnos
group by tutor_id
order by tutor_id;

select *
from platzi.alumnos
order by nombre asc
limit 1;
group by 
limit 1;

Nombre mas corto

SELECT MIN(nombre)
FROM platzi.alumnos

Nombre mas corto por tutor

SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
--el minimo solo nombre

SELECT MIN(nombre) 
FROM platzi.alumnos;

-- el minimo por id de tutor

SELECT tutor_id, min(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;

Esta fue mi solucion

Mi respuesta

select tutor_id, min(nombre) from alumnos
	group by tutor_id
	order by tutor_id;

Reto

SELECT tutor_id, min(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id DESC;

La solucion del reto

SELECT MIN (nombre)
FROM platzi.alumnos
GROUP BY nombre
ORDER BY nombre;


SELECT tutor_id, MIN (nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;

RETO
Mínimo de toda la tabla (nombre)

SELECT MIN(nombre)
FROM platzi.alumnos;

Mínimo nombre agrupado con tutor_id

SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id ASC

Aquí mi respuesta del reto de la clase:

SELECT nombre
FROM platzi.alumnos
ORDER BY nombre ASC
LIMIT 1;
<---------------------------------------->
SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;
--Solución para obtener el minimo nombre alfabeticamente en nuestra tabla.

--FORMA 1 : 
SELECT nombre FROM platzi.alumnos
ORDER BY nombre
LIMIT 1;

--FORMA 2: 
SELECT	MIN(nombre)
FROM platzi.alumnos;

--Solución para obtener  el minimo por id_tutor 
SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id 
ORDER BY tutor_id;

El reto Resuelto en SQL Server:
– Con select top –
SELECT TOP 1 nombre
FROM alumnos
ORDER BY nombre ASC

– Con min –

SELECT MIN (nombre) as nombre FROM alumnos

– Por id de tutor –
SELECT tutor_id, MAX(nombre)
FROM alumnos
GROUP BY tutor_id
ORDER BY tutor_id;

SELECT nombre
FROM platzi.alumnos
ORDER BY nombre;

SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id
SELECT tutor_id, MIN(nombre)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id ASC;

SELECT tutor_id, MIN (fecha_incorporacion)
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;

segunda alternativa

SELECT tutor_id, MIN (nombre)
FROM platzi.alumnos
GROUP BY tutor_id, nombre
ORDER BY tutor_id;

Mi respuesta al reto:

-- Min nombre en toda la tabla
SELECT MIN(nombre)
FROM platzi.alumnos;

-- Min nombre por tutor
SELECT MIN(nombre), tutor_id
FROM platzi.alumnos
GROUP BY tutor_id
ORDER BY tutor_id;

Hola, entendí que la tarea era traer todos los campos en común, así que este fue mi Query:

NOTA: Antes de realizar esto, verificar los rangos de cada una de las columnas, ya que pueden caer en el rango más amplio (en este caso el de “carrera_id” que es de 1 a 50) y traer lo que este contenga respecto al rango a comparar, en el caso de “tutor_id” que es de 1 a 30, entonces nos seguiría trayendo todos los datos de la tabla sin más.

SELECT *
FROM PLATZI.ALUMNOS
WHERE INT4RANGE((SELECT MIN(TUTOR_ID) FROM PLATZI.ALUMNOS), 
				(SELECT MAX(TUTOR_ID) FROM PLATZI.ALUMNOS)) 
@> CARRERA_ID;

¡Hola! Yo lo resolví así:

SELECT rango_carreras * rango_tutores
FROM (
	SELECT 	int4range(MIN(carrera_id), MAX(carrera_id)) AS rango_carreras, 
			int4range(MIN(tutor_id), MAX(tutor_id)) AS rango_tutores
	FROM platzi.alumnos
) AS un_alias_requerido;

Creo que es bastante parecido a lo que propone Israel.

Solución reto de la anterior clase:

SELECT
	(CONCAT('[',MIN(id)::text, ',',(MAX(id))::text,']'))::int4range
	*
	(CONCAT('[',MIN(tutor_id)::text, ',',(MAX(tutor_id))::text,']'))::int4range
	AS overlap_tutor_id
FROM platzi.alumnos;