Edward Toledo López
Xavier Carrera
David Amador Morales
Andrés David Lizarazo Becerra
Carolina Coronado Alderete
Cristian Dario Prieto Avella
Eric Samuel Amaya Vasquez
Usuario anónimo
Rafael Rivera
Jonathan Alejandro Sánchez Alcántara
Oscar Danilo Guzmán Villanueva
William Leonardo Torres Toloza
Juan Gustavo Daza Martínez
Rubén Cuello
Emmi Raffo
Fernando Pullutasig
Raul Armas
William Leonardo Torres Toloza
Luis Alejandro Nieto Ruth
Juan Diego Salvador Pacheco
Lizette Ximena Gil González
jorge luis jaime sánchez
jorge luis jaime sánchez
Oscar David Galvis Rodriguez
Andres Sanchez
leidy johana rodriguez gonzalez
Raul Santos
Jose Agustìn Lescano
Luis Guzmán
José Eduardo Vinagre de Dios
Jeison Esteban Gaviria Moncayo
Daniel Olave
Brandon Bladimir Ortiz Gonzalez
Y decían que nunca iba a usar teoría de conjuntos!
SELECT * FROM platzi.alumnos WHERE id NOT IN ( SELECT id FROM platzi.alumnos WHERE tutor_id = 30 )
Grande Edward!
tremendo hackerman, hehehe.
SELECT * FROM platzi.alumnos OFFSET ( SELECT COUNT(*)/2 FROM platzi.alumnos );
Justo algo así estaba intentando hacer y no sabía cómo. Gracias por compartir
El mío es muy parecido:
select * from platzi.alumnos offset (select count(*)/2 from platzi.alumnos) limit ( select count(*)/2 from platzi.alumnos);
También funciona con el signo != comparto mi query de escoger todo menos un subset:
SELECT * FROM platzi.alumnos WHERE id IN ( SELECT id FROM platzi.alumnos WHERE tutor_id != 30 )
Super practico, gracias por compartir
Mi solución usando MySQL
SELECT * FROM platzi.alumnos WHERE ( id > (SELECT COUNT(id)/2 FROM platzi.alumnos) );
Me pareció tan sencillo colocar un diferente (<>) en vez de un igual (=), aunque creo que exsiste una palabra reservada NOT que cumpliría el cometido, yo lo hice así:
SELECT ROW_NUMBER() OVER() AS row_id, * FROM platzi.alumnos WHERE id NOT IN ( SELECT id FROM platzi.alumnos WHERE tutor_id = 30 );
Eso hice yo, sólo agregar el diferente y así corre más rápido el script
Es mejor para el aprendizaje utilizar las window functions pero al final es más sencillo utilizar lo que comentas, el <> hace el query menos pesado
No entiendo muy bien que hace el "Row_number" y "Over".
estamos igual, animo!
Te lo planteo de esta manera: el row_number() es como ir generando un indice, y el over() es sobre que quieres ir haciendo ese indice. ejemplo tienes filas con una columna 'categorias' que pueden ser ['A', 'A', 'B', 'C', 'C'] en total serian 5 filas. si aplico ROW_NUMBER OVER('categorias') les asigna un numero de fila por categoria. El resultado seria una tabla de dos columnas: id_row [1,2,1,1,2] y categorias ['A', 'A', 'B', 'C', 'C]. Si no le paso ningun argumento a OVER() El resultado seria: id_row [1,2,3,4,5 y categorias ['A', 'A', 'B', 'C', 'C'] Espero te ayude en algo. Saludos
También pudo ser: SELECT * FROM platzi.alumnos WHERE tutor_id = 30;
Hola. Y para el ejercicio sólo cambias por <> y tienes los diferentes Saludos
Otra forma de hacerlo es decir a lo que son diferentes de tutor 30 es decir tutor_id != 30
SELECT * FROM platzi.alumnos WHERE id IN ( SELECT id FROM platzi.alumnos WHERE tutor_id != 30 )
<SELECT * FROM ( SELECT ROW_NUMBER() OVER() AS row_id, * FROM platzi.alumnos ORDER BY row_id ) AS alumnos_with_row_num WHERE row_id > (SELECT count(*)/2 FROM platzi.alumnos)>
Hola, quisiera saber qué fuentes de documentación me recomiendan para aprender sql desde cero, ues este curso se me hace un poco avanzado para el poco conocimiento que tengo. Gracias.
No se generó el link en el comentario pasado te lo dejó aquí https://platzi.com/clases/sql-mysql/
select *
from platzi.alumnos
where id >= (
select count(*)/2 as cuenta
from platzi.alumnos
);
12. Seleccionar de un set de opciones
SELECT * FROM platzi.alumnos WHERE id IN ( SELECT id FROM platzi.alumnos WHERE tutor_id = 30 AND carrera_id = 31 ); -- RETO SELECT * FROM platzi.alumnos WHERE id NOT IN ( SELECT id FROM platzi.alumnos WHERE tutor_id = 30 );
Mi solución, fue lo primero que pense cuando aun explicaba la clase.
SELECT * FROM platzi.alumnos WHERE id IN ( SELECT id FROM platzi.alumnos WHERE tutor_id != 30 );
SELECT * FROM platzi.alumnos OFFSET 500;
estas son las ++tres formas++ que encontre para darle solución al problema del final de la clase:
SELECT * FROM platzi.alumnos WHERE id IN ( SELECT id FROM platzi.alumnos WHERE tutor_id <> 30 ); SELECT * FROM platzi.alumnos WHERE id NOT IN ( SELECT id FROM platzi.alumnos WHERE tutor_id = 30 ); SELECT * FROM platzi.alumnos WHERE tutor_id <> 30;
Dos formas
SELECT * FROM ( SELECT ROW_NUMBER() OVER() AS row_id, * FROM platzi.alumnos ) AS alumnos_with_row_num WHERE row_id NOT IN ( SELECT id FROM platzi.alumnos WHERE tutor_id = 30 );
Segunda forma
SELECT * FROM platzi.alumnos except select * from platzi.alumnos where tutor_id=30;
Comparto mi solución al reto:
SELECT * FROM platzi.alumnos WHERE tutor_id <> 30;
El reto realizado con NOT IN
SELECT * FROM platzi.alumnos WHERE id NOT IN ( SELECT id FROM Platzi.alumnos WHERE tutor_id=30 ); ```SELECT \* FROM platzi.alumnos  WHERE id NOT IN ( SELECT id  FROM Platzi.alumnos  WHERE tutor\_id=30 );