El mundo de los datos: data science y machine learning

1

Aprende ciencia y análisis de datos para optimizar las estrategias de tu negocio

2

Retos para aprender ciencia de datos

3

¿Qué es ciencia de datos y big data? ¿Cómo afectan a mi negocio?

4

¿Qué tipo de información podemos analizar?

5

¿Cómo crear empresas y culturas data-driven?

6

¿Qué es inteligencia artificial y machine learning?

7

¿Qué es deep learning? Análisis de imagen, audio y video

Herramientas y roles de trabajo en ciencia de datos

8

Flujo de trabajo en ciencia de datos: fases, roles y oportunidades laborales

9

Herramientas para cada etapa del análisis de datos

10

¿Qué es y cómo usar una base de datos relacional con SQL?

11

Cómo estructurar queries en SQL

12

Conflictos y retos actuales sobre la ética y tratamiento de datos

Problema de negocio: análisis

13

Aplica técnicas de storytelling para convertir problemas de datos en historias

14

Cómo estructurar un caso de negocio

15

Análisis cuantitativo en un caso de negocio

16

Análisis cualitativo en un caso de negocio

17

Fusión cuanti-cualitativa en un caso de negocio

18

¿Qué es minería de texto? ¿Cómo usarla para obtener información adicional?

19

Variación de comportamientos a partir de la geolocalización

Problema de negocio: implementación

20

Acciones, algoritmos y toma de decisiones según los resultados del análisis

21

Apuntes y cursos para aprender ciencia de datos

22

Continúa aprendiendo ciencia y análisis de datos para ejecutar estrategias efectivas

No tienes acceso a esta clase

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

Cómo estructurar queries en SQL

11/22
Recursos

Aportes 547

Preguntas 118

Ordenar por:

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

Si alguien desea crear la tabla del ejercicio:

CREATE TABLE VENTAS_2020 (
	Dia int not null,
	Mes int not null, 
	Anio int not null,
	Producto varchar (25) not null,
	id int PRIMARY KEY,
	valor int not null
);

INSERT INTO VENTAS_2020 (Dia, Mes, Anio, Producto, id, valor)
values (1,2,1998,'Bocina',24,528),
	   (12,4,2004, 'Auriculares',31,240),
	   (14,8,2016,'Auriculares',14, 315),
	   (16,10,2019,'Bocina',200,1050),
	   (21,12,2020,'Bocina',304,680);

He creado un fiddle con la tabla VENTAS_2020 para que puedan probar el codigo SQL sin tener que instalar un sistema de gestión de base de datos, solo abren el link, escriben el codigo y le dan a run:

Link del fiddle

Después de correr el query

Les dejo esta maravilla, muy útil para refrescar memoria.

¿Cuántos auriculares se han vendido con precio de 300 o menor a 300 pesos?

Obtener los 5 productos más vendidos desde el año 2000.

SELECT COUNT(*) as Ventas, Producto
FROM VENTAS_2020
WHERE Año >= 2000
GROUP BY Producto
ORDER BY COUNT(*) DESC
LIMIT 5;

Si quieren practicar SQL, pueden instalar SQLite, que es un pequeño motor de bases de datos. Y para facilitar la manipulación, pueden usar DBeaver, que es una interfaz gráfica que te permite conectarte a diversas bases de datos

Entregar los id y descripción de los productos con mayor valor desde el año 2000 en adelante

SELECT Id, Producto
FROM VENTAS_2020
WHERE Año >= 2000
ORDER BY Valor DESC

¿Cuanto es el promedio de ventas de Auriculares desde 2016?

SELECT AVG (VALOR)
FROM VENTAS_2020
WHERE Producto = "Auriculares"
AND Año >=2016

Use pgAdmin en este caso, excelente curso

Cuantos usuarios entraron al e-commerce y cuantos finalizaron con compras exitosas?

SELECT COUNT(c.client_id) AS num_clients, COUNT(t.client_id) AS num_buyers 
FROM clients AS c
JOIN transactions AS t
	ON u.client_id = t.client_id
WHERE t.status = 'buy'
GROUP BY num_clients;

Objetivo reto: ¿Cuál es promedio del valor de venta de las bocinas desde el 2019?

SELECT AVG ventas
FROM VENTAS_2020
WHERE Producto = ‘Bocina’
	AND Año >= 2019
  • ¿Qué observaste?
    Tiene información de ventas de bocinas y auriculares, tiene el día, el mes y año de la venta, así como un id
  • ¿Cuál fue tu pregunta?
    Venta total desde el año 2016
  • ¿Cuál fue tu querie en SQL?
    `SELECT SUM(Valor)

FROM VENTAS_2020

WHERE Año >= 2016`

  • ¿Qué solución/respuesta encontraste?
    $1,100
  • ¿Qué observaste?
    Había más días pares de venta que impares
  • ¿Cuál fue tu pregunta?
    __Cuanto fue el monto de ventas en días impares
  • ¿Cuál fue tu querie en SQL?
    __SELECT SUM(Valor) FROM VENTAS_2020 WHERE (Dia % 2) != 0
  • ¿Qué solución/respuesta encontraste?
    __Una suma de las ventas de los días impares (528 + 680)

Usando el código propuesto por Leonardo para poder guardar los valores en la base de datos, me propuse obtener el articulo más barato vendido y el más caro vendido. El código es el siguiente:

SELECT * FROM ventas_2020 
WHERE valor = (SELECT MAX(valor) FROM ventas_2020) 
OR valor = (SELECT MIN(valor) FROM ventas_2020) 
ORDER BY valor;

Este código obtiene ambos valores y los muestra ordenados de forma ascendente, es decir, el más bajo primero. Lo interesante fue encontrar que se puede usar una segunda consulta, mejor dicho una agregación, como para parámetro para WHERE.

En la pestaña VENTAS_2020 observa la información de la “base de datos”, plantéate una pregunta y encuentra una solución por medio de queries en SQL.

  • ¿Qué observaste?
    Esta empresa vende Bocinas y auriculares, se maneja en Pesos MX, de los 30 años que lleva fundada(1990-2020) no ha hecho ventas continua sólo ha tenido ventas en 5 años.

  • ¿Cuál fue tu pregunta?
    ¿Cúal es la venta promedio de los 5 años representados en la tabla VENTAS_2020?

  • ¿Cuál fue tu querie en SQL?
    SELECT AVG (ALL Valor)
    FROM VENTAS_2020
    WHERE Año >= 1998

  • ¿Qué solución/respuesta encontraste?"
    $562.20

Los Queries nos sirven para extraer información que no sea de utilidad de una tabla referente a una base de datos, para el ejemplo propuesto por la profesora (saber cuantas bocinas se han vendido por más de 600 MXN desde 2019), tenemos como solución el siguiente código: SELECT COUNT (DISTINCT id) FROM VENTAS_2020 WHERE producto = “Bocina” AND valor>600 AND año>=2019

Examinando la lógica:
Cada bocina vendida tiene un id diferente,++ único++, por lo tanto lo que queremos hacer es contar cuantos id únicos referentes a bocinas hay con SELECT COUNT haciendo la distinción de los id únicos con DISTINCT , además queremos tener en cuenta algunas condiciones específicas como el valor/ año con WHERE y AND.
** Las palabras como este caso Bocina se deben escribir en comillas, los números no.

Otra posible solución seria
SELECT COUNT(id) FROM VENTAS_2020 Where valor > 600 AND Anio >= 2019

Yo me pregunté, porque si el campo ID representa una venta en particular, en esa venta se pudieron comprar por ejemplo 3 Bocinas (en la misma venta) , se entiende? faltaría un campo que indique cantidad o indicar a nivel de enunciado que cada venta, es decir, cada ID solo puede representar 1 cantidad vendidad de algo. Que opinan?

Segundo, el campo ID es unico, no haria falta el comando DISTINCT. es asi?

Información resumida de esta clase
#EstudiantesDePlatzi

  • Entendemos que tenemos una base de datos que me puede ayudar a responder ciertas preguntas de negocio
  • Escribiendo código puedo extraer la información y responder una gran cantidad de preguntas que aporten valor

Para las personas que no deseen instalar un motor de base de datos aún, pueden utilizar sqlite online.

https://sqliteonline.com/

Y correr el siguiente trozo de código.

CREATE TABLE VENTAS_2020 (
	Dia int not null,
	Mes int not null, 
	Anio int not null,
	Producto varchar (25) not null,
	id int PRIMARY KEY,
	valor int not null
);

INSERT INTO VENTAS_2020 (Dia, Mes, Anio, Producto, id, valor)
values (1,2,1998,'Bocina',24,528),
	   (12,4,2004, 'Auriculares',31,240),
	   (14,8,2016,'Auriculares',14, 315),
	   (16,10,2019,'Bocina',200,1050),
	   (21,12,2020,'Bocina',304,680);

MUY MAL ESTA PARTE DEL CURSO POR LO SIGUIENTE:

No se explica que software para SQL utilizar, tocó buscar entre los comentarios.

Un amigo me tuvo que ayudar y hacer el ejercicio. Por ejemplo, en la página donde lo hice tiene varios elementos SQL que hay que organizar para poder que se importe bien la lista, eso no se explica en este curso.

A la final el código de este vídeo si funciona, pero resulta que primero hay que preparar la base de datos para que SQL corra el código. Reitero, nada de esto se explica y hay que consultar absolutamente todo, ningún ejercicio explicativo acá.

Pueden practicar de manera muy sencilla en esta página:
SQL lite playground

Numero de auriculares vendidos antes de 2019

SELECT COUNT (DISTINCT Id)
FROM VENTAS_2020
WHERE Producto = "Auriculares"
AND Año <= 2019

Resultado = 2

Tengo una duda. Cual seria la diferencia o la ventaja de SQL para realizar esas consultas si en R se podría llegar a ese resultado?

Por si alguien esta interesado en hacer el cargue desde python les comparto el código que hice para conectarme a con mariadb,desde la creación de las tablas e insertar los datos leidos del archivo excel.

# Module Imports
import mariadb
import pandas as pd
import numpy as np
import sys

# Connect to MariaDB Platform
try:
    conn = mariadb.connect(
        user="root",
        password="",
        host="127.0.0.1",
        port=3306,
        database=#Your db

    )
except mariadb.Error as e:
    print(f"Error connecting to MariaDB Platform: {e}")
    sys.exit(1)

# Lectura de tabla
filepath = #Your file path

df_ventas = pd.read_excel(filepath ,sheet_name = "VENTAS_2020", engine = "openpyxl")

# Get Cursor
cur = conn.cursor()

cur.execute("CREATE DATABASE IF NOT EXISTS platzi")
cur.execute("USE platzi")
cur.execute("DROP TABLE IF EXISTS VENTAS_2020")

cur.execute("SET GLOBAL max_allowed_packet=50*1024*1024")

cur.execute("""CREATE TABLE IF NOT EXISTS VENTAS_2020 (
                Día int not null,
                Mes int not null, 
                Año int not null,
                Producto varchar (25) not null,
                ID int PRIMARY KEY,
                Valor int not null
            )""")

for i in range(len(df_ventas)):
    
    val = [int(j) if isinstance(j, (int, np.integer)) else j for j in df_ventas.iloc[i]]

    cur.execute("""INSERT INTO VENTAS_2020 (Día, Mes, Año, Producto, id, valor)
                   VALUES (?, ?, ?, ?, ?, ?)
                """, val)

conn.commit()

conn.close()

Ojoooo

Si una columna es una Primary Key es innecesario el uso de “DISTINCT”, la PK ya garantiza que los registros sean únicos.

  • La pregunta es: En qué año se realizó la mayor venta?
  • El querie en SQL:
    SELECT MAX (DISTINCT año)
    FROM VENTAS_2020
    WHERE NOT valor = 0

Agradezco la retroalimentación!

¿Qué observaste?

  • Tabla de Ventas 2020, donde se tienen los registros de todas las ventas por día, mes, año, producto, id, y valor.

¿Cuál fue tu pregunta?

  • Cuánto es el promedio de ventas de los auriculares en los últimos 5 años
    ¿Cuál fue tu querie en SQL?
SELECT AVG Valor FROM VENTAS_2020 WHERE Producto='Auriculares' AND Año>=2016

¿Qué solución/respuesta encontraste?

  • 315

Saber cuantos auriculares se vendieron desde el año 2004 por mas de un valor de 200 MXN

SELECT COUNT (DISTINCT id)
FROM VENTAS_2020
WHERE producto='Auriculares’
AND Valor> 200
AND AÑO>= 2004

R: 2

¿Tienen las BBDD de los ejemplos que están indicando en los vídeos?

Pienso que este curso es excelente, exceptuando lo que es la introducción a SQL, ya que, sino tienes bases de sql o de programación quedas en el aire. Para poder resolver el ejercicio cómodamente tuve que realizar un curso de 8 horas youtube, no digo que este mal hacerlo, solo pienso que nos deberían dar una mejor inducción al lenguaje y que no sea necesario ir a otra plataforma para saber todo o casi todo. Por lo menos asi lo veo yo

Mi primera vez usando SQL

  • ¿Cuál fue tu pregunta?
    Cual es el total de las ventas desde inicio del siglo XXI¡

  • ¿Cuál fue tu querie en SQL?
    SELECT SUM (VALOR)
    FROM VENTAS_2020
    WHERE AÑO >= 2000

  • ¿Qué solución/respuesta encontraste?
    La suma de todas las ventas desde principios de siglo XXI es 2285$ MXN

- ¿Qué observaste?
surgen varias preguntas, pero me limita mi conocimiento sobre comandos de SQL, pero después de indagar pude dar con las respuesta a la pregunta que quería formular

- ¿Cuál fue tu pregunta?
¿Cuál es cantidad total de auriculares vendidos?

_- ¿Cuál fue tu querie en SQL? _
SELECT COUNT(*) AS TotalAuricularesVendidos
FROM TuTabla
WHERE Producto = ‘Auriculares’;

_- ¿Qué solución/respuesta encontraste? _
La respuesta es 2 auriculares se han vendido

Saber cuantos auriculares se vendieron por menos de 300 MXM después del 2004

SELECT COUNT ( DISTINCT id)
FROM VENTAS_2020
WHERE Producto = ‘Auriculares’
AND Valor < 300
AND Año > 2004

Resultado
1

Cuantos auriculares se han vendido desde el 2010
SELECT COUNT (DISTINCT id)
FROM VENTAS_2020
WHERE Producto = "Auriculares"
AND Año >= 2010

Mis respuestas al reto:

  • ¿Qué observaste? Veo una tabla de datos que contiene las ventas de varios años
  • ¿Cuál fue tu pregunta?
    ¿Cuál es el producto que más importe ha traido a lo largo de todo el tiempo?
  • ¿Cuál fue tu querie en SQL?
-- 1. Selecciona el producto y el total de ventas
select
	producto,
	"Total de ventas"
FROM(
-- 2. Subconsulta para obtener el total de ventas por producto
        select
        	producto,
        	SUM(valor) as "Total de ventas"
        from ventas_2020
        group by producto)
where rownum <= 1 -- Muestra solo la primera fila
-- 3. Ordenamos ventas de mayor a menor para asegurar que rownum solo muestre el mayor valor
order by "Total de ventas" DESC;
  • ¿Qué solución/respuesta encontraste?
    La bocina es el producto que más venta total ha generado a lo largo del tiempo, con un importe de 2258 MXN

Reto de la clase

¿Qué observaste? -

un registro de ventas, contiene campos como dia, mes, año, producto, ID y Valor

¿Cuál fue tu pregunta? - El Valor de las ventas totales desde 2000

¿Cuál fue tu querie en SQL? -

  1. Primero creamos la tabla en SQL con el siguiente codigo
CREATE TABLE VENTAS_2020 (
	Dia int not null,
	Mes int not null, 
	Anio int not null,
	Producto varchar (25) not null,
	id int PRIMARY KEY,
	valor int not null
);

INSERT INTO VENTAS_2020 (Dia, Mes, Anio, Producto, id, valor)
values (1,2,1998,'Bocina',24,528),
	   (12,4,2004, 'Auriculares',31,240),
	   (14,8,2016,'Auriculares',14, 315),
	   (16,10,2019,'Bocina',200,1050),
	   (21,12,2020,'Bocina',304,680);
  1. Hacemos la consutlta con el siguiente Codigo
SELECT SUM(valor)
FROM VENTAS_2020
WHERE anio >= 2000

¿Qué solución/respuesta encontraste?

2285

Acá mi código para encontrar la bocina mas barata antes de 2019:

<code> 
SELECT ID, Producto, Valor
FROM VENTAS _2020
WHERE Valor = (SELECT MIN(Valor) 
FROM VENTAS_2020)
AND Año < 2019)
;
  • ¿Qué observaste?
  1. La cantidad de ventas de los productos.
  2. Los productos que dispongo.
  • ¿Cuál fue tu pregunta?
    Durante la trayectoria del negocio
  1. Cual es el producto que mas he vendido?
  2. Cual de los productos genera mas ganancias?
  • ¿Cuál fue tu querie en SQL?
Select COUNT( DISTINCT id) as nroventas, producto FROM ventas GROUP BY  producto ORDER BY nroventas DESC LIMIT 1;   
Select SUM(valor), producto FROM ventas GROUP BY  producto ORDER BY SUM(valor) DESC LIMIT 1; 
  • ¿Qué solución/respuesta encontraste?
    El producto “Bocina” fue el que genero mas ganancias y fue mas vendido a lo largo de la trayectoria de ventas.

Para los que necesiten un editor de BD pueden usar SQL Lite Online, es gratis, no requiere instalación ni registro: https://sqliteonline.com/

Ejercicio del video aplicado en MariaDB

  • Creamos la tabla:

  • Insertamos los valores en la tabla:

  • Consultamos la información agregada:

  • Realizamos la consulta de búsqueda:

  • ¿Qué observaste? Ventas de auriculares

  • ¿Cuál fue tu pregunta? Cuantas ventas de auriculares se han realizado desde el año 2000

  • ¿Cuál fue tu querie en SQL?
    SELECT COUNT (DISTINCT id)
    FROM VENTAS_2020
    WHERE Producto='Auriculares’
    AND Año >=2000

  • ¿Qué solución/respuesta encontraste? = 2

Para serles sincero en un caso real eso no funciona asi, me explico: 1. es distinct no es necesario a menos de hallas diseñado la tabla de forma incorrecta. 2.el año no se guarda asi debe ir como tipo date o datetime y en el ejemplo esta definido de forma incorrecta parece mas un tipo int o string. 3. el ejemplo es sacado de excel y no de SQL. 4. Solo esta haciendo que los novatos tengan malas practicas con esos errores de datos. 5. Si es un ejemplo de SQL tiene que ser sacado de una tabla guardada en SQL.

Sinceramente empiezo a dudar en las capacidades de la instructora.

El ejemplo real en SQL quedaria asi:

SELECT COUNT(id) from VENTAS_2020 WHERE YEAR(anio) >= 2019 and UPPER(producto)=‘BOCINA’ and valor>600

Porque YEAR(), pues en un campo tipo date o datetime el PC lo interpreta como un float y el numero 2019 no corresponde a ese año en este float date o datetime

anio. porque la ñ no esta en el alfabeto ingles, para empresas internacionales es recomendable usar este alfabeto. Ademas de que ahorra tiempo al programador que nosea español buscando en el codigo ASCII

id no necesita DISTINCT porque si id fue declarado como llave primeria pues no es necesario.

UPPER() porque si el campo esta siendo guardado en una caja de texto y no en una caja de seleccion, el usuario no siempre va a guardar ‘Bocina’ porque peude escribirlo todo en minusculas o mayusculas y esta funcion trasforma ese texto a mayusculas y poder incluir todos los textos ‘bocina’

SELECT COUNT (DISTINCT Año)
FROM VENTAS_2020
WHERE Producto = 'Auriculares’
AND Valor < 250
AND Año 1998

Cuantos audífonos se vendieron por menos de $250 desde 1998?
R: 1

Existe un sitio web muy bueno en donde se pueden ejecutar comandos sql => https://sqliteonline.com para practicas

¿Cuántos auriculares con un valor por encima de 150 pesos fue vendido?

select count (distinct id)
from venta_2020
where producto = "Auriculares"
and valor =>150

creo que es asi… me siento genial y muy feliz de practicar

No se ustedes, pero se corto el video

¿Qué observaste? Quisiera saber la bocina con el valor más alto

  • ¿Cuál fue tu pregunta? Cuál es la bocina con el valor más alto?
  • ¿Cuál fue tu querie en SQL? SELECT año, producto, id, valor
    FROM VENTAS_2020
    WHERE valor = (SELECT MAX(valor) FROM VENTAS_2020;
  • ¿Qué solución/respuesta encontraste? 2019 Bocina 200 $1050
  • ¿Qué observaste? Venta de una empresa desde 1998 hasta 2020
  • ¿Cuál fue tu pregunta? Cuales son las ventas que poseen un valor entre 300 y 1000
  • ¿Cuál fue tu querie en SQL?
Select * 
From VENTAS_2020 
Where Valor >= 300 
AND Valor <= 1000
  • ¿Qué solución/respuesta encontraste? Se encontraron 3 registros

Hola comunidad, tengo una duda si lo estructuro de esta forma, me arroja el mismo resultado?

  1. Select count (producto) from ventas_2020 where producto=bocina and valor>600 and año>=2019

  2. Select count (año) from ventas_2020 where año=>2019 and producto=bocina and valor>600

Cuantos auriculares se vendieron desde el año 1998?
SELECT COUNT (DISTINC id)
FROM VENTAS_2020
WHERE Producto= "Auriculares"
AND Año>= 1998

Resultado: 2

Me hice la siguiente pregunta ( por si alguien le sirve):
¿Cual fue el ID de la venta de mayor valor despues del año 2016?

SELECT id 
FROM VENTAS_2020 
WHERE valor = (SELECT MAX(valor) FROM VENTAS_2020)
AND anio > 2016;

EJERCICIO: EN QUÉ AÑO SE OBTUVO MAYOR VENTA DE BOCINA.
Select from ventas_2020 max(distinct valor) order by (año)
where (producto= bocina)

CREATE TABLE ofertas_2020 (
          Día   int not null,
          Hora int not null, 
         Mes int not null,
         Anio init not null,
   Producto varchar (50) not null,
    id int prmary id KEY,
    valor int not null.
  );
INSERT INTO ofertas_2020 (Dia, Hora, Mes, Anio, Producto, id, valor)
Values (23, 13,05,2020,reloj, 44, 67)

Objetivo:
Saber cuántos auriculares hemos vendido por menos de 35 MXN el último año.

SELECT COUNT (DISTINCT id)
FROM VENTAS_2020
WHERE Producto = “Auriculares”
AND Valor < 35
AND Año >= 2020

¿Cuál fue el precio promedio de las bocinas vendidas entre 2019 y 2020?

SELECT AVG (Valor)
FROM VENTAS_2020
WHERE Producto = 'Bocina'
	AND Año >= 2019
	AND Año <= 2020

productos vendidos desde el 2018 hasta la actualidad

<code>
SELECT PRODUCTO
FROM VENTAS_2020
WHERE AÑO >= 2018

Encontrar el mínimo de ventas entre los años 2000

MIN FROM VENTAS_2020
WHERE VALOR
	AND Año < 3000
	AND Año > 2000

Se me hizo un poco ambigua la pregunta, inmediatamente pensé en unidades vendidas o algo así por el estilo. Cambiaría la pregunta a: ¿Cuántos modelos de boconas…

Deseo saber cuántas ventas mayores a $500 hemos realizado desde 2019.

SELECT COUNT (DISTINCT id)
FROM VENTAS_2020 WHERE Valor >= 500
AND Año >= 2019  ```

¿Cual es el valor total de ventas de auriculares en el 2018?

SELECT FROM VENTAS_2020
SUM Valor
WHERE Producto= "Auriculares"
AND Año= “2018”;

Select count (producto) < ---------- Que dato quieres traer
from ventas_2020 < ---------- Desde donde lo quieres traer
where producto in (‘Bocina’) and valor > 600 and ano >= ‘2019’ <----- especificaciones

(Esta en postgreSQL)

Tengo mis dudas sobre si esto me da el promedio de las ventas totales sin contar el año 2020

SELECT AVG(Valor)
FROM VENTAS_2020
NOT AÑO = = 2020

Ejercicio: Mostrar el dinero ganado entre bocinas y auriculares, excepto las del año 2016

SELCT SUM(Valor)
FROM VENTAS_2020
WHERE AÑO>=1998
	NOT AÑO=2016

SELECT COUNT (DISTINCT id)
FROM VENTAS_2020
WHERE producto = “bocina”, "auticulares "
AND valor>=2018
AND valor <=2019

¿Cuál ha sido el año con más ventas?
¿Como quedaría el Query si me hiciera esta pregunta? .

Cual es el promedio de ventas entre 2019 y 2020

SELECT * AVG
FROM VENTAS_2020
WHERE AÑO>=2019
ORDER BY AÑO

Cuales cual fue el promedio de las ventas realizadas en 2020

SELECT AVG *
FROM VENTAS_2020,
WHERE AÑO=>2019,

Ejercicio: Saber el numero total de dinero vendido de Bocinas a partir del año 2016

SELCT SUM(Valor)
FROM VENTAS_2020
WHERE Año >=2016
	AND Producto='Bocina'


Valor de auriculares vendidos desde 2004:
SELECT SUM(DISTINCT Valor)
FROM VENTAS_2020
WHERE Producto = 'Auriculares’
AND Año >= 2004

Promedio valor de venta de bocinas: Select average(valor) From ventas_2020 Where producto = 'bocina' ;

Lo que la empresa ha vendido:
SELECT SUM(valor)
FROM ventas_2020
;
En promedio cuanto ha vendido por cada producto:
SELECT producto,AVG(valor)
FROM ventas_2020
GROUP BY producto
ORDER BY producto DESC
;

Cuál articulo se vendió más costoso de cada categoria:
SELECT producto,MAX(valor)
FROM ventas_2020
GROUP BY producto
;

¿Cuál fue el ingreso por venta de auriculares en 2019?

SELECT SUM valor from ventas_2020 WHERE año = "2019" AND Producto = "Auriculares"

INTERESANTE

Nuevo reto.

Total vendido en el 2020:

SELECT sum(Valor) FROM VENTAS_2020 WHERE Año = 2020

Suma de ventas a partir del 2016 del producto Bocina
SELECT SUM(Valor)
FROM VENTAS_2020
WHERE Producto = ‘Bocina’ AND Año >= 2016

Es increíble que se enseñen cosas de SQL pero no como ponerlo a correr, ni en dónde hacerlo. He intentado de todas las formas y no me da. Quedé en las mismas.

No hay un paso a paso para llegar a SQL y que de el resultado

Muy buena explicación. Entendí perfectamente SQL

La forma en que lo hice en MYSQL, espero que les sirva. NO PAREN DE APRENDER…

<

PARTE 1 =>

 " Crea la base de datos "empresa" en SQL"

Create database empresa; 



PARTE 2 =>

 "Crea la tabla "ventas_2020" en la base de datos "empresa" en SQL"

create table  empresa.ventas_2020 (   
	
    venta_id integer not null auto_increment,
		dia integer not null,
    mes integer not null,
    año integer not null,
    producto varchar(255) not null,
    valor float not null,
    primary key(venta_id)

);



PARTE 3 =>

 "Inserta valores a la base de datos "empresa" en la tabla "ventas_2020""

insert into empresa.ventas_2020(dia, mes, año, producto, valor)
values  (1, 2, 1998, "Bocina", 528),
	      (12, 4, 2004, "Auriculares", 240),
        (14, 8, 2016, "Auriculares", 315),
        (16, 10, 2019, "Bocina", 1050),
        (21, 12, 2020, "Bocina", 680);


PARTE 4 =>

"Creacion de vista o view en SQL (Mostrar informacion). En la primera parte se CREA la vista y se le asigna un nombre "`v_Ventas_bocinas`", despues se SELECCIONA las columnas de la tabla que deseo mostrar, como: venta_id, dia, año, mes, producto, valor. Despues se usa FROM para indicar de que base de datos y tabla se desea hacer la VIEW o Vista,  y por ultimo en WHERE se ponen las condiciones que deseo mostrar,  y las voy uniendo con el operador logico AND. "

CREATE VIEW `v_Ventas_bocinas` AS
SELECT venta_id, dia, mes, año, producto, valor
FROM empresa.ventas_2020
WHERE año >= 2019 AND producto = "Bocina" AND valor > 600


> 

Saber CUÁNTOS productos se han vendido desde la fundación de la empresa.

SELECT COUNT (id)

FROM VENTAS_2020

Queries para extraer información de una tabla.

¿Qué observaste? Veo las ventas de una compañía de articulos multimendia con registros hasta el año 2020

  • ¿Cuál fue tu pregunta? Cuantos auriculares se vendieron desde el año 2010 hasta 2020
  • ¿Cuál fue tu querie en SQL? SELECT COUNT (DISTINC id) FROM VENTAS_2020 WHERE Producto = ‘Auriculares’ AND AÑO >= 2010
  • ¿Qué solución/respuesta encontraste? Resultado = 1

Ejemplo de consulta SQL para saber cuántas bocinas se han vendido por más de 600 MXN desde 2019

La consulta SQL que se puede utilizar para responder a esta pregunta es:

sqlCopy code
SELECT COUNT(DISTINCT id)
FROM ventas_2020
WHERE producto = 'bocina' AND valor > 600 AND año >= 2019;

Esta consulta utiliza la función COUNT() para contar el número de IDs únicos que corresponden a las ventas de bocinas con un valor mayor a 600 MXN y que se realizaron a partir del año 2019. La cláusula DISTINCT se utiliza para contar solamente los IDs únicos, y no el número total de ventas.

  1. Qué observaste?
    ID de las Bocinas.
  2. Cuál fue tu pregunta?
    Cuántas bocinas se vendieron desde el año 1995?
  3. Cuál fue tu querie en SQL?
    SELECT COUNT (DICTINCT id)
    FROM VENTAS_2020
    WHERE Producto = 'Bocinas’
    AND Año > 1995
  4. _Qué solución/respuesta encontraste?
    3

Buen ejemplo.

Seria interesante conocer paginas con ejercicios prácticos. alguna recomendación?

Observé que se venden mas bocinas que Auriculares, la pregunta es ¿cuántos auriculares se ha vendido por más de 300 MXN desde 1998?. Código SQL Select Count (Distinct Id) From Ventas_2020 Where Producto = Auriculares And Valor > 300 And Año >= 1998

Un query es una consulta o pregunta que se realiza a una base de datos. Un query puede utilizar lenguajes de programación específicos para solicitar información de la base de datos, y la base de datos devuelve los resultados de la consulta en forma de un conjunto de datos. Los queries son comunes en aplicaciones de bases de datos y se utilizan para extraer y manipular datos de la base de datos de manera eficiente.
IA ChatGPT

Mis resumen de la clase (Notion)

Les comparto el código de la tabla de ventas hecha con MySql (es otro ejemplo pero funciona de la misma forma)

CREATE TABLE VENTAS_2021 (
  Dia int not null,
  Mes int not null,
  Anio int not null,
  Producto varchar(25) not null,
  id int PRIMARY KEY,
  valor int not null
);

INSERT INTO VENTAS_2021 (Dia, Mes, Anio, Producto, id, valor)
values(10, 1, 2017, 'Televisor', 23, 430),
      (9, 2, 2021, 'Licuadora', 21, 100),
      (3, 3, 2022, "Impresora", 5, 300),
      (15, 7, 2018, "Calculadora", 8, 50),
      (6, 4, 2022, "Portatil", 11, 800);

SELECT * FROM VENTAS_2021;

y también les comparto un link de un editor online de MySQL, me parece bastante intuitivo y completo, por si lo quieren usar https://app.coderpad.io/

SQL es una poderosa herramienta que permite realizar consultas de varias tablas , permitiendo tener toda la información requerida en una sola sabana de datos, asi el análisis que se este realizando será mucho más completo y eficiente.

Mi aporte:

¿Qué observaste?
Observé que hay ventas solo de dos productos: Bocinas y Auriculares.

¿Cuál fue tu pregunta?
¿Qué se ha recaudado más en ventas durantes estos años. Bocinas o Auriculares?

¿Cuál fue tu querie en SQL?
SELECT Producto, COUNT(Producto), SUM(Valor) FROM VENTAS_2020 GROUP BY Producto ORDER BY SUM(Valor) DESC

¿Qué solución/respuesta encontraste?
Se ha vendido más por Bocinas, con un total de $1313 en ventas por encima de los auriculares los cuales han dejado $555 en ventas.

¿Cuántos auriculares se han vendido desde el año 2000 con un valor menor a 400 MXN?
SELECT COUNT (DISTINCT id)
FROM VENTAS_2020
WHERE Producto = 'Auriculares’
AND Valor < 400
AND Año >= 2000

Espero esté bien

RETO: En la pestaña VENTAS_2020 observa la información de la “base de datos”, plantéate una pregunta
y encuentra una solución por medio de queries en SQL.

Vi los auriculares en la tabla, ¿Cuántos auriculares se vendieron?

SELECT COUNT
FROM VENTAS_2020
WHERE Productos=‘auriculares’

2

  • ¿Qué observaste? Simple table with sales of 4 products
  • ¿Cuál fue tu pregunta? How many products did we sell before 2000?
  • ¿Cuál fue tu querie en SQL? SELECT COUNT (DISTINCT id) FROM VENTAS_2020 WHERE Producto IN (‘Bocina’) AND Ano <= 2000
  • ¿Qué solución/respuesta encontraste? 1