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

Seleccionar por a帽o

14/29
Recursos

Aportes 425

Preguntas 16

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Soluci贸n del reto

SELECT *
    FROM platzi.alumnos
    WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2018
        AND (EXTRACT(MONTH FROM fecha_incorporacion)) = 05;

Mis soluciones:

SELECT *
FROM platzi.alumnos
WHERE (DATE_PART('YEAR', fecha_incorporacion)) = 2018 
AND (DATE_PART('MONTH', fecha_incorporacion)) = 05 ;

SELECT *
FROM platzi.alumnos
WHERE  fecha_incorporacion like '2018 -05 %';

Dejo este aporte para l@s compa帽er@s que est谩n comenzando y a煤n no se encuentran trabajando en la industria.

Lo que est谩 explicando este profesor es sumamente importante, sus ejemplos tal cual te va a llegar en el requerimiento de parte de tus lideres.
(en caso de querer seguir el path de data science) Por lo general luego de las reuniones de negocio o el cliente en cuesti贸n, va a necesitar 鈥渓a cantidad de usuarios que se registraron en el ultimo trimestre, pero que tengan mas de 3 interacciones diarias con la plataforma y tengan entre 24 y 28 a帽os鈥

Entonces tu capacidad de responder estas preguntas v铆a querys utilizando SQL va a hacer que tu perfil profesional se eleve. Recuerda siempre preguntar como se armaron las tablas de donde se est谩n consultando los datos, ya que sumamente importante entender a la perfecci贸n cada feature para dar el valor que tu cliente necesita.

Te deseo lo mejor !

pd: yo estoy como ds y estoy repasando por 2 vez este curso y lo har铆a nuevamente las veces que sea necesario para poder refrescar mis conocimientos.

Es bastante intuitivo, solo toca poner un AND y seguir las instrucciones cambiando a帽o por mes al agregar la nueva condici贸n de la siguiente manera:

SELECT *
FROM (
	SELECT *,
		DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,
		DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion
	FROM platzi.alumnos
) AS alumnos_con_anio
WHERE anio_incorporacion = 2020 AND mes_incorporacion = 05;

y as铆 conseguimos todos los alumnos que se incorporaron en mayo del 2020.

Una solucion un poco diferente

select *
FROM platzi.alumnos a
where fecha_incorporacion >= '2018-05-01' and fecha_incorporacion  <  '2018-06-01'

Yo estoy usando MySQL WorkBench:

La soluci贸n al reto seria:

<SELECT *
FROM platzi.alumnos
WHERE YEAR(fecha_incorporacion)=2018 AND MONTH(fecha_incorporacion)=5;>
SELECT *
FROM platzi.alumnos
WHERE
EXTRACT(YEAR FROM fecha_incorporacion) = 2018
AND EXTRACT(MONTH FROM fecha_incorporacion)= 5
;

14. Seleccionar por a帽o

SELECT *
FROM platzi.alumnos
WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2019

SELECT *
FROM platzi.alumnos
WHERE (DATE_PART('YEAR', fecha_incorporacion)) = 2018

SELECT *
FROM (
	SELECT *,
		DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion
	FROM platzi.alumnos
)AS alumnos_con_anio
WHERE anio_incorporacion = 2020;

-- RETO

SELECT *
FROM (
    SELECT *,
        DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,
        DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion
    FROM platzi.alumnos
) AS alumnos_con_anio_mes
WHERE anio_incorporacion = 2020
    AND mes_incorporacion = 7;

RETO
Seleccionar los alumnos que se incorporaron en el a帽o 2018 y en el mes de mayo.


Soluci贸n 1:

SELECT *
FROM platzi.alumnos
WHERE EXTRACT(YEAR FROM fecha_incorporacion) = 2018
AND EXTRACT(MONTH FROM fecha_incorporacion) = 5;

Soluci贸n 2:

SELECT *
FROM platzi.alumnos
WHERE DATE_PART('YEAR', fecha_incorporacion) = 2018
AND DATE_PART('MONTH', fecha_incorporacion) = 5;

Soluci贸n 3:

SELECT *
FROM(
	SELECT *, 
		EXTRACT(YEAR FROM fecha_incorporacion) anio_incorporacion, 
		EXTRACT(MONTH FROM fecha_incorporacion) mes_incorporacion
	FROM platzi.alumnos
) alumnos_anio
WHERE anio_incorporacion = 2018
AND mes_incorporacion = 5;

Soluci贸n 4:

SELECT * 
FROM platzi.alumnos
WHERE TO_CHAR(fecha_incorporacion, 'YYYYMM') = '201805';

Mi soluci贸n, mostrando adem谩s otra forma de agregar m谩s de un valor al where por el cual filtrar ^-^

SELECT *
FROM (
	SELECT *, 
	DATE_PART('YEAR', fecha_incorporacion) as anio, 
	DATE_PART('MONTH', fecha_incorporacion) as mes
	FROM platzi.alumnos
) alumnos_with_date
WHERE (anio, mes) = (2018,5);

Otra forma de filtrar usando date_trunc

select *
from platzi.alumnos
where date_trunc('year', fecha_incorporacion)::date = '2018-01-01'

Mi soluci贸n con ambas formas aprendidas en clase.

SELECT *
FROM platzi.alumnos
WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2018
	AND (EXTRACT(MONTH FROM fecha_incorporacion)) = 5;
	
SELECT *
FROM (
	SELECT *,
		DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion, 
		DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion
	FROM platzi.alumnos
) AS alumnos_con_anio_mes
WHERE anio_incorporacion = 2018
	AND mes_incorporacion = 5;
SELECT *
FROM platzi.alumnos
WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2018
AND (EXTRACT(MONTH FROM fecha_incorporacion)) = 05;

Mi reto

SELECT *
FROM platzi.alumnos
WHERE DATE_PART ('YEAR', fecha_incorporacion) = 2018 and DATE_PART ('month', fecha_incorporacion) = 5;

Adem谩s me encontr茅 con la manera de filtrar por d铆a de la semana, entonces como reto personal, me pregunte cual es el d铆a de la semana en donde mas se registraron personas para el 2018

SELECT  COUNT(*) AS total,
case
	when extract(DOW from fecha_incorporacion) = 0 then 'domingo'
	when extract(DOW from fecha_incorporacion) = 1 then 'lunes'
	when extract(DOW from fecha_incorporacion) = 2 then 'martes'
	when extract(DOW from fecha_incorporacion) = 3 then 'miercoles'
	when extract(DOW from fecha_incorporacion) = 4 then 'jueves'
	when extract(DOW from fecha_incorporacion) = 5 then 'viernes'
	when extract(DOW from fecha_incorporacion) = 6 then 'sabado'
end dia_semana
from platzi.alumnos
where extract(YEAR from fecha_incorporacion) = 2018
group by dia_semana
order by total desc;

Encontr茅 que para ese a帽o los mi茅rcoles son los d铆as que generan mayores suscripciones o matriculas

Aqu铆 las soluciones:

select * FROM platzi.alumnos
WHERE EXTRACT(year from fecha_incorporacion) = 2018
and
extract(MONTH from fecha_incorporacion) = 5;
select * FROM platzi.alumnos
WHERE date_part('year', fecha_incorporacion) = 2018
AND
date_part('month', fecha_incorporacion) = 5;
select *
FROM (
    SELECT EXTRACT(YEAR from fecha_incorporacion) as anio,
    extract(month from fecha_incorporacion) as mes, *
    FROM platzi.alumnos
) as pla
WHERE anio = 2018 
AND mes = 5
order by fecha_incorporacion asc;

Mi soluci贸n al reto

SELECT *
FROM (
	SELECT *,
		DATE_PART('YEAR', fecha_incorporacion) AS annio_inicio,
		DATE_PART('MONTH', fecha_incorporacion) AS mes_inicio
	FROM platzi.alumnos
) AS year_alumnos
WHERE annio_inicio = 2018 AND mes_inicio = 5;

Para SQL Server

-- METODO 3
-- FECHA FILTRO CON SUBCONSULTA
USE [platzi]
SELECT *
FROM
(
	SELECT *, YEAR(fecha_incorporacion) AS anio
	FROM platzi.alumnos
) AS alumnos_con_anio
WHERE anio = 2019


/*
FILTRAR MAYO DE 2018
*/

-- METODO 1
USE [platzi]
SELECT *
FROM 
(
	SELECT *, YEAR(fecha_incorporacion) AS anio, MONTH(fecha_incorporacion) AS mes
	FROM platzi.alumnos
) AS alumnos_con_anio_mes
WHERE anio=2018 AND mes=5
GO

-- METODO 2
USE [platzi]
SELECT *
FROM platzi.alumnos
WHERE CONVERT(CHAR(10), fecha_incorporacion,126) LIKE '2018-05%'
GO

Mi soluci贸n:

SELECT *
FROM platzi.alumnos
WHERE DATE_PART('YEAR', fecha_incorporacion) = 2018
AND DATE_PART('MONTH', fecha_incorporacion) = 5;

Siguiendo el curso, comparto solucion:

SELECT *
FROM (
  SELECT *,
  DATE_PART('YEAR', fecha_incorporacion) AS anio_incorp,
  DATE_PART('MONTH', fecha_incorporacion) AS month_incorp
  FROM platzi.alumnos
) AS alumnos_con_anio
WHERE anio_incorp = 2018 AND month_incorp = 05;

馃挭

`SELECT DATE_PART('HOUR', fecha_incorporacion) AS hora_incorporacion,` `DATE_PART('MINUTE', fecha_incorporacion) AS minuto_incorporacion,` `DATE_PART('SECOND', fecha_incorporacion) AS segundo_incorporacion5` `FROM platzi.alumnos;` `SELECT EXTRACT (HOUR FROM fecha_incorporacion) AS hora_incorporacion,` `EXTRACT (MINUTE FROM fecha_incorporacion) AS minuto_incorporacion,` `EXTRACT (SECOND FROM fecha_incorporacion) AS segundo_incorporacion` `FROM platzi.alumnos;`
Esta fue mi soluci贸n, espero que les guste :D ```js SELECT * FROM (SELECT nombre, EXTRACT(YEAR FROM fecha_incorporacion)AS anio_incorporacion, EXTRACT(MONTH FROM fecha_incorporacion)AS mes_incorporacion FROM platzi.alumnos) AS alumnos_confecha WHERE anio_incorporacion = 2018 AND mes_incorporacion = 5; ```SELECT \* FROM (SELECT nombre, EXTRACT(YEAR FROM fecha\_incorporacion)AS anio\_incorporacion, EXTRACT(MONTH FROM fecha\_incorporacion)AS mes\_incorporacion FROM platzi.alumnos) AS alumnos\_confecha WHERE anio\_incorporacion = 2018 AND mes\_incorporacion = 5;

Solucion

SELECT *
FROM platzi.alumnos
WHERE ( extract (year from  fecha_incorporacion )) = 2019  and (extract (month from  fecha_incorporacion )) = 05

Tambien lo quise ordenar para ver quien fue el primero segun la hora:

SELECT *
FROM platzi.alumnos
WHERE ( extract (year from  fecha_incorporacion )) = 2019  and (extract (month from  fecha_incorporacion )) = 05
ORDER BY ( extract (hour from  fecha_incorporacion )) asc;
SELECT \* FROM platzi.alumnos WHERE (EXTRACT (Year FROM fecha\_incorporacion))=2018 and (DATE\_PART('Month', fecha\_incorporacion))=05
SELECT *
FROM platzi.alumnos 
WHERE DATE_PART('YEAR',fecha_incorporacion) = 2018 AND
DATE_PART('month',fecha_incorporacion) = 5;
```css SELECT * FROM (SELECT *, DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion, DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion FROM platzi.alumnos ) AS alumnos_con_anio_y_mes WHERE anio_incorporacion = 2018 AND mes_incorporacion=5; ```
`SELECT *` `FROM (` ` ``SELECT *,` ` ``DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,` ` ``DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion` ` ``FROM platzi.alumnos` `) AS alumnos_ingreso` `WHERE anio_incorporacion = 2018` `AND mes_incorporacion = 05;`
soluci贸n `SELECT id, nombre, apellido, anio_incorporacion, mes_incorporacion` `FROM(` ` ``SELECT *,` ` ``DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,` ` ``DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion` ` ``FROM platzi.alumnos` `) AS alumnos_con_anio_mes` WHERE anio\_incorporacion=2018 AND mes\_incorporacion=05;
como cargo mis diplomas de platzi a linkdin
\- Filtro DATE\_PART -- SELECT \* FROM platzi.alumnos WHERE DATE\_PART('YEAR', fecha\_incorporacion) = 2019 AND DATE\_PART('MONTH', fecha\_incorporacion) = 5 ORDER BY fecha\_incorporacion ASC; \-- Filtro subquery DATE\_PART -- SELECT \* FROM ( SELECT \*, DATE\_PART('YEAR', fecha\_incorporacion) AS anio\_incorporacion, DATE\_PART('MONTH', fecha\_incorporacion) AS mes\_incorporacion FROM platzi.alumnos ) AS alumnos\_con\_anio\_mes WHERE anio\_incorporacion = 2019 AND mes\_incorporacion = 5 ORDER BY fecha\_incorporacion ASC;

Para seleccionar registros por a帽o en una tabla, generalmente puedes utilizar la funci贸n EXTRACT para obtener el a帽o de una columna de tipo fecha. Sin embargo, la disponibilidad de esta funci贸n puede depender del sistema de gesti贸n de bases de datos espec铆fico que est茅s utilizando

PostgreSQL
En PostgreSQL, puedes usar la funci贸n EXTRACT de la siguiente manera:

SELECT DISTINCT EXTRACT(YEAR FROM fecha_incorporacion) AS anio
FROM platzi.alumnos;

  • Esta consulta te dar谩 una lista de a帽os 煤nicos presentes en la columna fecha_incorporacion de la tabla alumnos.
MySQL
En MySQL, la funci贸n YEAR puede ser utilizada

SELECT DISTINCT YEAR(fecha_incorporacion) AS anio
FROM platzi.alumnos;
SQL Server
En SQL Server, tambi茅n puedes utilizar la funci贸n YEAR:

SELECT DISTINCT YEAR(fecha_incorporacion) AS anio
FROM platzi.alumnos;

  • Estas consultas te dar谩n una lista de a帽os 煤nicos presentes en la columna fecha_incorporacion de la tabla alumnos. Utiliza la sintaxis que corresponda a tu sistema de gesti贸n de bases de datos.
SELECT
  EXTRACT(HOUR FROM fecha_incorporacion) AS horas,
  EXTRACT(MINUTE FROM fecha_incorporacion) AS minutos,
  EXTRACT(SECOND FROM fecha_incorporacion) AS segundos
FROM platzi.alumnos;

EXTRACT(HOUR FROM fecha_incorporacion) obtiene las horas de la columna fecha_incorporacion.
EXTRACT(MINUTE FROM fecha_incorporacion) obtiene los minutos.
EXTRACT(SECOND FROM fecha_incorporacion) obtiene los segundos.
```js SELECT FECHA_INCORPORACION, EXTRACT(YEAR FROM FECHA_INCORPORACION) AS ANIO, EXTRACT(MONTH FROM FECHA_INCORPORACION) AS MES, EXTRACT(DAY FROM FECHA_INCORPORACION) AS DIA, CASE WHEN EXTRACT(ISODOW FROM FECHA_INCORPORACION) = 1 THEN 'Lunes' WHEN EXTRACT(ISODOW FROM FECHA_INCORPORACION) = 2 THEN 'Martes' WHEN EXTRACT(ISODOW FROM FECHA_INCORPORACION) = 3 THEN 'Miercoles' WHEN EXTRACT(ISODOW FROM FECHA_INCORPORACION) = 4 THEN 'Jueves' WHEN EXTRACT(ISODOW FROM FECHA_INCORPORACION) = 5 THEN 'Viernes' WHEN EXTRACT(ISODOW FROM FECHA_INCORPORACION) = 6 THEN 'Sabado' WHEN EXTRACT(ISODOW FROM FECHA_INCORPORACION) = 7 THEN 'Domingo' END AS DIA_SEMANA, EXTRACT(HOUR FROM FECHA_INCORPORACION) AS HORA, EXTRACT(MINUTE FROM FECHA_INCORPORACION) AS MINUTO, EXTRACT(SECOND FROM FECHA_INCORPORACION) AS SEGUNDOS FROM PLATZI.ALUMNOS; ```
SELECT *
FROM (
	SELECT *,DATE_PART('YEAR', fecha_incorporacion)AS anio_incorporacion,
	DATE_PART('Month', fecha_incorporacion)AS mes_incorporacion
	from platzi.alumnos	
)as alumnos_con_anioymes

where anio_incorporacion=2020 and mes_incorporacion=5; 
```js select * from ( select *, date_part('year', fecha_incorporacion) as anio, date_part('month', fecha_incorporacion) as mes from platzi.alumnos ) as al_anio where al_anio.anio = 2018 and al_anio.mes = 5; select * from platzi.alumnos where date_part('YEAR', fecha_incorporacion) = 2018 and date_part('month', fecha_incorporacion) = 5; ```select \* from ( select \*, date\_part('year', fecha\_incorporacion) as anio, date\_part('month', fecha\_incorporacion) as mes from platzi.alumnos ) as al\_anio where al\_anio.anio = 2018 and al\_anio.mes = 5; select \* from platzi.alumnos where date\_part('YEAR', fecha\_incorporacion) = 2018 and date\_part('month', fecha\_incorporacion) = 5;
ES MAS OPTIMO `select extract(hour from fecha_incorporacion) AS hora_incorporation,` `extract(minute from fecha_incorporacion) AS minute_incorporation,` `extract(second from fecha_incorporacion) AS seonc_incorporation` `FROM platzi.alumnos;`
`SELECT *` `FROM platzi.alumnos` `WHERE((EXTRACT(YEAR FROM fecha_incorporacion)) = 2018` ` `` AND EXTRACT(MONTH FROM fecha_incorporacion) = 05);`
Dejo mi soluci贸n al reto de las 3 formas propuestas `SELECT *` `FROM platzi.alumnos` `WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2018` `AND (EXTRACT(MONTH FROM fecha_incorporacion)) = 5;` `SELECT *` `FROM platzi.alumnos` `WHERE (DATE_PART('YEAR', fecha_incorporacion)) = 2018` `AND (DATE_PART('MONTH', fecha_incorporacion)) = 5;` `SELECT *` `FROM (` ` ``SELECT *,` ` `` ``DATE_PART('YEAR', fecha_incorporacion) AS anio_incorp,` ` `` ``DATE_PART('MONTH', fecha_incorporacion) AS mes_incorp` ` ``FROM platzi.alumnos) AS alumnos_con_anio` ` ``WHERE anio_incorp = 2018 AND mes_incorp = 5;`
\--ALUMNOS QUE SE INCORPORARON EN MAYO DEL 2018 SELECT\* FROM ( SELECT \*, DATE\_PART('MONTH',fecha\_incorporacion) AS mes\_incorporacion, DATE\_PART('YEAR',fecha\_incorporacion) AS anio\_incorporacion FROM PLATZI.alumnos ) as alumnos\_con\_fecha WHERE mes\_incorporacion=5 and anio\_incorporacion=2018
```js --ALUMNOS QUE SE INCORPORARON EN MAYO DEL 2018 SELECT* FROM ( SELECT *, DATE_PART('MONTH',fecha_incorporacion) AS mes_incorporacion, DATE_PART('YEAR',fecha_incorporacion) AS anio_incorporacion FROM PLATZI.alumnos ) as alumnos_con_fecha WHERE mes_incorporacion=5 and anio_incorporacion=2018 ```--ALUMNOS QUE SE INCORPORARON EN MAYO DEL 2018 SELECT\* FROM ( SELECT \*, DATE\_PART('MONTH',fecha\_incorporacion) AS mes\_incorporacion, DATE\_PART('YEAR',fecha\_incorporacion) AS anio\_incorporacion FROM PLATZI.alumnos ) as alumnos\_con\_fecha WHERE mes\_incorporacion=5 and anio\_incorporacion=2018
-- SQL SERVER
SELECT * FROM alumnos
WHERE YEAR(fecha_incorporacion)=2018 AND
	MONTH(fecha_incorporacion)=05
Mi solucion al reto de los estudiantes del 2019 en el mes de mayo: ```js SELECT * FROM platzi.alumnos WHERE (DATE_PART('YEAR', fecha_incorporacion)) = 2019 AND (DATE_PART('MONTH', fecha_incorporacion)) = 5; ```
Mi solucion del reto de la clase pasada: ```js SELECT DATE_PART('SECOND', fecha_incorporacion) AS segundo_incorporacion, DATE_PART('MINUTE', fecha_incorporacion) AS minuto_incorporacion, DATE_PART('HOUR', fecha_incorporacion) AS hour_incorporacion FROM platzi.alumnos; ```
Una de mis respuestas es la siguiente, obtuve 30 registros para 2018 y mayo. SELECT \* FROM ( SELECT nombre, apellido, EXTRACT (YEAR FROM fecha\_incorporacion) AS anio\_incorporacion, EXTRACT (MONTH FROM fecha\_incorporacion) AS mes\_incorporacion FROM platzi.alumnos ) AS tabla WHERE anio\_incorporacion = 2018 AND mes\_incorporacion = 5
```js SELECT nombre, apellido, anio_incorporacion, mes_incorporacion FROM( SELECT *, DATE_PART ('YEAR', fecha_incorporacion) AS anio_incorporacion, DATE_PART ('MONTH', fecha_incorporacion) AS mes_incorporacion FROM platzi.alumnos ) AS alumno_y_anio WHERE anio_incorporacion = 2018 AND mes_incorporacion = 5; ```SELECT nombre, apellido, anio\_incorporacion, mes\_incorporacion FROM( SELECT \*, DATE\_PART ('YEAR', fecha\_incorporacion) AS anio\_incorporacion, DATE\_PART ('MONTH', fecha\_incorporacion) AS mes\_incorporacion FROM platzi.alumnos ) AS alumno\_y\_anio WHERE anio\_incorporacion = 2018 AND mes\_incorporacion = 5;
```txt select * from platzi.alumnos where (extract (YEAR FROM fecha_incorporacion)) = 2018 and (extract (MONTH FROM fecha_incorporacion)) = 5; select * from platzi.alumnos where (DATE_PART('YEAR',fecha_incorporacion))=2018 AND (DATE_PART('MONTH',fecha_incorporacion))=5; ```

Mi soluci贸n con SQL Server
SELECT *
FROM alumnos
WHERE YEAR(fecha_incorporacion) = 2018 AND MONTH(fecha_incorporacion) = 5;

```js -- Reto, Extraer los alumnos que se incorporaron en mayo del 2018 SELECT * FROM ( SELECT *, DATE_PART('YEAR', fecha_incorporacion) AS ANIO_INCOR, DATE_PART('MONTH', fecha_incorporacion) AS MES_INCOR FROM platzi.alumnos ) AS alumnos_incorporados WHERE ANIO_INCOR = 2018 AND MES_INCOR = 5; ```
```js -- Reto, Extraer los alumnos que se incorporaron en mayo del 2018 SELECT * FROM ( SELECT *, DATE_PART('YEAR', fecha_incorporacion) AS ANIO_INCOR, DATE_PART('MONTH', fecha_incorporacion) AS MES_INCOR FROM platzi.alumnos ) AS alumnos_incorporados WHERE ANIO_INCOR = 2018 AND MES_INCOR = 5; ```-- Reto, Extraer los alumnos que se incorporaron en mayo del 2018 SELECT \* FROM ( SELECT \*, DATE\_PART('YEAR', fecha\_incorporacion) AS ANIO\_INCOR, DATE\_PART('MONTH', fecha\_incorporacion) AS MES\_INCOR FROM platzi.alumnos ) AS alumnos\_incorporados WHERE ANIO\_INCOR = 2018 AND MES\_INCOR = 5;

SELECT *
FROM (
SELECT *,
DATE_PART(鈥榊EAR鈥, fecha_incorporacion) AS anio_incorporacion,
DATE_PART(鈥楳ONTH鈥, fecha_incorporacion) AS mes_incorporacion
FROM platzi.alumnos
) AS alumnos_mes_anio
WHERE anio_incorporacion = 2018
AND mes_incorporacion = 05;

鈥 reto de tarea sacar las horas mysql
SELECT EXTRACT(HOUR FROM fecha_incorporacion) AS hora_de_incorporacion,
EXTRACT(MINUTE FROM fecha_incorporacion) AS minuto_de_incorporacion,
EXTRACT(SECOND FROM fecha_incorporacion) AS segundo_de_incorporacion
FROM platzi.alumnos;

鈥 ejercicio en postgresSQL
SELECT DATE_PART(鈥楬OUR鈥, fecha_incorporacion) AS hora_de_incorporacion,
DATE_PART(鈥楳INUTE鈥, fecha_incorporacion) AS minuto_de_incorporacion,
DATE_PART(鈥楽ECOND鈥, fecha_incorporacion) AS segundo_de_incorporacion

FROM platzi.alumnos;

select date_part( 'year', fecha_incorporacion) as anio_incorporacion,
        date_part('month', fecha_incorporacion) as mes_incorporacion,
        date_part('day', fecha_incorporacion) as dia_incorporacion
from alumnos where extract (year from fecha_incorporacion) = 2020 order by anio_incorporacion desc; 

select * from(
select *,date_part('year',fecha_incorporacion) as anio_incorporacion,
	date_part('month',fecha_incorporacion) as mes_incorporacion
from platzi.alumnos)
as alumnos_con_anio
where anio_incorporacion = 2018
and mes_incorporacion = 5;```

Mi solucion al reto:

-- Alumnos que se incorporaron en mayo de 2018.
SELECT * --1
FROM platzi.alumnos
WHERE EXTRACT(YEAR FROM fecha_incorporacion) = 2020
AND DATE_PART('MONTH', fecha_incorporacion) = 5;



SELECT * --2
FROM (
    SELECT *, DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,
    EXTRACT(MONTH FROM fecha_incorporacion) AS mes_incorporacion
    FROM platzi.alumnos
) AS alumnos_con_anio
WHERE anio_incorporacion > 2018 AND mes_incorporacion = 5;```

Hola, por ac谩 dejo mi c贸digo soluci贸n

SELECT * 
FROM (
	SELECT *,
	EXTRACT(YEAR FROM fecha_incorporacion) AS a帽o_incorporacion,
	EXTRACT(MONTH FROM fecha_incorporacion) AS mes_incorporacion
	FROM platzi.alumnos
) AS alumnos_con_fecha
WHERE a帽o_incorporacion = 2018 AND mes_incorporacion = 5
ORDER BY fecha_incorporacion ASC;

Mi humilde soluci贸n :

SELECT *
FROM (
SELECT * ,
DATE_PART(鈥楳ONTH鈥,fecha_incorporacion)AS mes_incorporacion,
DATE_PART(鈥榊EAR鈥,fecha_incorporacion) AS anio_incorporacion
FROM platzi.alumnos
)AS a帽o_mes_incorpacion
WHERE mes_incorporacion = '05鈥
AND anio_incorporacion = 鈥2018鈥 ;

Aporte.

select * 
from
alumnos
where (extract(year from fecha_incorporacion))  = 2018  
	and (extract(month from fecha_incorporacion)) = 05

Mi aporte

--V1

   SELECT * 
from (
select *,date_part ('year',fecha_incorporacion)as a帽o
,date_part('month',fecha_incorporacion) as mes from platzi.alumnos
)as alumnos
where a帽o = 2018 and mes = 5

--V2

select * 
from platzi.alumnos
where EXTRACT(YEAR FROM fecha_incorporacion) = 2018 AND EXTRACT(MONTH FROM fecha_incorporacion) = 5;

Soluci贸n SQL Server

select *
from platzi.alumnos
where month(fecha_incorporacion)=05 and YEAR(fecha_incorporacion) = 2018

La solucion al reto, usando las 2 clausulas EXTRACT, DATE_PART y con subconsulta es:
.
Con EXTRACT

SELECT *
FROM platzi.alumnos
WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2018
	  AND (EXTRACT (MONTH FROM fecha_incorporacion)) = 5;

con DATE_PART

SELECT *
FROM platzi.alumnos
WHERE (DATE_PART('YEAR', fecha_incorporacion)) = 2018
	  AND (DATE_PART('MONTH', fecha_incorporacion)) = 5;

Y con subconsulta

SELECT *
FROM (
	SELECT *,
			DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,
			DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion
	FROM platzi.alumnos
) AS alumnos_con_anio
WHERE anio_incorporacion = 2018 AND mes_incorporacion = 5;

SELECT *
FROM platzi.alumnos
WHERE DATE_PART(鈥榊EAR鈥,fecha_incorporacion)=2018
AND DATE_PART(鈥楳ONTH鈥,fecha_incorporacion)=03;

SELECT nombre, apellido, fecha_incorporacion 
FROM platzi.alumnos
WHERE 
DATE_PART('YEAR', fecha_incorporacion) = 2018 
AND
DATE_PART('MONTH', fecha_incorporacion) = 05
;

SELECT nombre, apellido, fecha_incorporacion 
FROM platzi.alumnos
WHERE 
EXTRACT('YEAR' FROM fecha_incorporacion) = 2018 
AND
EXTRACT('MONTH' FROM fecha_incorporacion) = 05
;

Mi soluci贸n

SELECT *
FROM (
	SELECT *,
		DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporation,
	    DATE_PART('MONTH', fecha_incorporacion) AS month_incorporation
	FROM platzi.alumnos
) AS alumnos
WHERE anio_incorporation=2018 AND month_incorporation=5;

SOLUCION DEL RETO: Solo mostramos los nombres y apellidos de los alumnos incorporados en mayo de 2018

/* Extraer cu谩les son los alumnos que se incorporaron en Mayo 2018.*/
SELECT *
FROM(
	SELECT *, DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion, DATE_PART('MONTH', fecha_incorporacion) AS Mes_incorporacion
	FROM platzi.alumnos
) AS alumnos_con_anio_y_mes
WHERE anio_incorporacion = 2018 AND mes_incorporacion = 5;
FROM PLATZI.alumnos
WHERE (EXTRACT(YEAR FROM fecha_incorporacion))=2018
and (EXTRACT(MONTH FROM fecha_incorporacion))=05

Mi soluci贸n

SELECT *
FROM platzi.alumnos
WHERE (EXTRACT(YEAR FROM fecha_incorporacion) = 2018)
      AND (EXTRACT(MONTH FROM fecha_incorporacion) = 05);

	   
select *
from platzi.alumnos
where (date_part('year', fecha_incorporacion) = 2018)
	  AND (date_part('year', fecha_incorporacion) = 05);
	   
select *
from (
	select *, 	date_part('year', fecha_incorporacion) as year_incorporacion,
				date_part('month', fecha_incorporacion) as month_incorporacion
	from platzi.alumnos
) as alumnos_con_anios
where year_incorporacion = 2020 AND month_incorporacion = 05;

SELECT * FROM platzi.alumnos WHERE (EXTRACT(YEAR FROM fecha_incorporacion) = 2018) AND (EXTRACT(MONTH FROM fecha_incorporacion) = 05); select * from platzi.alumnos where (date_part('year', fecha_incorporacion) = 2018) AND (date_part('year', fecha_incorporacion) = 05); select * from ( select *, date_part('year', fecha_incorporacion) as year_incorporacion, date_part('month', fecha_incorporacion) as month_incorporacion from platzi.alumnos ) as alumnos_con_anios where year_incorporacion = 202

Deberia haber subtitulos

SQL SERVER
Pensando, en que esto puede ser un filtro, coloque estos dos datos (a帽o y mes) como una variable para poder controlar aun mas

DECLARE @YearSelected INT = 2018
DECLARE @MonthSelected INT = 5

			SELECT	*
			FROM (SELECT	*
							, YEAR(FechaIncorporacion)	AS IncorporationYear
							, MONTH(FechaIncorporacion)	AS IncorporationMonth
							FROM	Platzi.Alumnos)	AS DateTable
			WHERE IncorporationYear = @YearSelected AND IncorporationMonth = @MonthSelected

Soluci贸n planteada

SELECT * FROM platzi.alumnos
WHERE TO_CHAR(fecha_incorporacion,鈥榊YYY-MM鈥) = 鈥2018-05鈥;

Encontr茅 estas dos formas de soluci贸n dentro de mysql:

select * from alumnos where extract(year from fecha_incorporacion) = 2018 and extract( month from fecha_incorporacion)= 05;
select * from 
(
select *, extract(year from fecha_incorporacion) as incorporation_year, month(fecha_incorporacion) as incorporation_month from alumnos
)as filter_students where incorporation_year = 2018 and incorporation_month=05;

Soluciones al reto:

鈥揟area: Saber los alumnos que se incorporaron en mayo de 2018
SELECT *
FROM (
SELECT *,
DATE_PART(鈥榊EAR鈥, fecha_incorporacion) AS anio_incorporacion,
DATE_PART(鈥楳ONTH鈥, fecha_incorporacion) AS mes_incorporacion
FROM platzi.alumnos
)AS alumnos_con_anio_mes
WHERE anio_incorporacion = 2018
AND mes_incorporacion = 5;

鈥揙tra forma tarea
SELECT *
FROM platzi.alumnos
WHERE (EXTRACT(YEAR FROM fecha_incorporacion) = 2018
and EXTRACT(MONTH FROM fecha_incorporacion) = 5);

Mi busqueda al ejercicio, filtrar por Mayo 2018.

SELECT *
FROM (
	SELECT *,
		DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,
		DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion
	FROM platzi.alumnos
) AS alumnos_con_anio
WHERE anio_incorporacion = 2020 AND mes_incorporacion=05;

Fue mi soluci贸n:

Select *
from(
	select *, 
		date_part('year', fecha_incorporacion) as a帽o_incorporacion,
		date_part('month', fecha_incorporacion) as mes_incorporacion
	from platzi.alumnos
) as alumnos_con_a帽os
where a帽o_incorporacion =2020 and mes_incorporacion=08;

Query con las siguientes condiciones:

  • fecha : mayo del 2020
  • la segunda letra del nombre debe ser 鈥渁鈥
  • que la colegiatura sea mayor o igual a 4050

Para 鈥淐onocer los alumnos que se incoporaron en mayo de 2018鈥 estas son mis propuestas:

--Propuesta 1--
SELECT *
FROM platzi.alumnos
WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2018 AND (EXTRACT(MONTH FROM fecha_incorporacion)) = 5;

--Propuesta 2--
SELECT *
FROM platzi.alumnos
WHERE (DATE_PART('YEAR', fecha_incorporacion)) = 2018 AND (DATE_PART('MONTH', fecha_incorporacion)) = 5;

--Propuesta 3--
SELECT	*
FROM (
	SELECT	*,
			DATE_PART('YEAR', fecha_incorporacion) AS anno_incorporacion, DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion
	FROM platzi.alumnos
) AS alumnos_con_anno_mes
WHERE alumnos_con_anno_mes.anno_incorporacion = 2018 AND alumnos_con_anno_mes.mes_incorporacion = 5; 

Reto: Obtener estudiantes que se incorporaron en mayo del 2018

SELECT *
FROM
  (SELECT ROW_NUMBER() OVER() AS row_id,
          *,
          DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,
          DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion
   FROM platzi.alumnos) AS alumnos_de_mayo
WHERE anio_incorporacion = 2018
  AND mes_incorporacion = 05;

Esta es mi soluci贸n, es un poco m谩s lenta, pero esta fue la primera opci贸n que me lleg贸 al cabeza:

SELECT *
FROM(
SELECT *,
DATE_PART(鈥榊EAR鈥, fecha_incorporacion) AS anio_incorporacion,
DATE_PART(鈥楳ONTH鈥, fecha_incorporacion) AS mes_incorporacion
FROM platzi.alumnos
)AS alumnos_con_anio
WHERE anio_incorporacion = 2018
AND mes_incorporacion = 5;

猸怌omparto mi Soluci贸n

SELECT *
FROM platzi.alumnos
WHERE (SELECT EXTRACT (YEAR FROM fecha_incorporacion))=2018
	AND (SELECT EXTRACT (MONTH FROM fecha_incorporacion))=5;
_________________________________________________

SELECT *
FROM (SELECT *,
	  	EXTRACT(YEAR FROM fecha_incorporacion) AS a帽o,
	  	EXTRACT(MONTH FROM fecha_incorporacion) AS mes
	  FROM platzi.alumnos
) AS alumnos_fecha
WHERE a帽o = 2018
AND mes = 5;
SELECT DATE_PART("YEAR",
        FECHA_INCORPORACION) AS anio,
        DATE_PART("MONTH",
        FECHA_INCORPORACION) AS MES,
        DATE_PART("DAY",
        FECHA_INCORPORACION) AS DIA,
        DATE_PART("HOUR",
        FECHA_INCORPORACION) AS HORAS,
        DATE_PART("MINUTE",
        FECHA_INCORPORACION) AS MINUTOS,
        DATE_PART("SECOND",
        FECHA_INCORPORACION) AS SEGUNDOS
    FROM PLATZI.ALUMNOS;

SELECT *
FROM platzi.alumnos
WHERE DATE_PART(鈥榊EAR鈥, fecha_incorporacion) = 2018
AND DATE_PART(鈥楳ONTH鈥, fecha_incorporacion) = 05
;

SELECT *
FROM platzi.alumnos
WHERE EXTRACT(YEAR FROM fecha_incorporacion)= 2018 AND EXTRACT (MONTH FROM fecha_incorporacion) = 5;


SELECT * 
FROM platzi.alumnos 
WHERE DATE_PART('YEAR', fecha_incorporacion)=2018 AND DATE_PART('MONTH', fecha_incorporacion)= 5;
SELECT * FROM (
	SELECT *, DATE_PART('YEAR',fecha_incorporacion) AS anio_incorporacion
	FROM platzi.alumnos
)AS alumnos_con_anio
WHERE anio_incorporacion = 2019
SELECT *
FROM (
	SELECT *,
	DATE_PART('YEAR', fecha_incorporacion) AS year_incorporacion,
	DATE_PART('MONTH', fecha_incorporacion) AS month_incorporacion
	FROM platzi.alumnos
) AS alumnos_fechas
WHERE year_incorporacion = 2020
AND month_incorporacion = 05;

SELECT *
FROM platzi.alumnos
WHERE (EXTRACT (YEAR FROM fecha_incorporacion))=2018
AND (EXTRACT (MONTH FROM fecha_incorporacion)) = 05;

Reto seleccionar a帽o y mes:

SELECT * 
FROM (
	SELECT *,
		DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,
		DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion
	FROM platzi.alumnos
) AS fecha_incorporacion
WHERE anio_incorporacion = 2020
	AND mes_incorporacion =05;

select *
from (
select *,
date_part(鈥榶ear鈥,fecha_incorporacion) as anio_incorporacion,
date_part(鈥榤onth鈥,fecha_incorporacion) as mes_incorporacion
from platzi.alumnos
)as alumnos_con_anio
where anio_incorporacion=2018 and mes_incorporacion=05;

select extract(hour from fecha_incorporacion)
as hora,
extract(minute from fecha_incorporacion)
as minutos,
extract(second from fecha_incorporacion) as segundos
from platzi.alumnos;

mi aporte

SELECT *
FROM platzi.alumnos AS a
INNER JOIN (
	SELECT id, 
		EXTRACT (YEAR FROM fecha_incorporacion) AS anios_incorporacion,
 		EXTRACT (MONTH FROM fecha_incorporacion) AS mes_incorporacion
	FROM platzi.alumnos
)AS b
ON a.id = b.id
ORDER BY anios_incorporacion;

select *
from (
select * , extract(year from fecha_incorporacion) as anio,
extract(month from fecha_incorporacion) as mes
from platzi.alumnos
) as fecha
where anio = 2018 and mes = 5

yo lo queria que me mostrara el monbre del alumno, mes y a帽o.

SELECT *
FROM platzi.alumnos
WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2018
AND (EXTRACT(MONTH FROM fecha_incorporacion)) = 05

MI aporte al reto:

--- buscar y traer los registros donde cierta parte de la fecha (RETO)
SELECT *
FROM curso.alumnos
where DATE_PART ('month',fecha_incorporacion) = 5 AND DATE_PART ('year',fecha_incorporacion) = 2018 

--- buscar y traer los registros donde cierta parte de la fecha opcion 2 (RETO)

SELECT * 
FROM (
	SELECT *,
		DATE_PART ('year',fecha_incorporacion) AS Anio_inc,	
		DATE_PART ('month',fecha_incorporacion) AS mes_inc,	
		DATE_PART ('day',fecha_incorporacion) AS dia_inc
	FROM curso.alumnos
	) AS alum_con_fecha
WHERE 	Anio_inc = 2018 
	AND mes_inc = 5 
	AND Dia_inc = 1;

Mi aporte:
SELECT *

FROM(
SELECT *,
DATE_PART(鈥榊EAR鈥,fecha_incorporacion) AS anio_incorporacion,
DATE_PART(鈥楳ONTH鈥,fecha_incorporacion) AS mes_incorporacion
FROM platzi.alumnos
) AS alumnos_con_anio
WHERE anio_incorporacion = 2018 AND mes_incorporacion = 5;

SELECT *
FROM (
SELECT *,
DATE_PART(鈥榊EAR鈥, fecha_incorporacion) AS anio_incorporacion,
DATE_PART(鈥楳ONTH鈥, fecha_incorporacion) AS mes_incorporacion
FROM platzi.alumnos
) AS alumnos_con_a帽o
WHERE anio_incorporacion = 2018
AND mes_incorporacion = 05;