Utilice SQL para análisis de datos como Excel

Columna SQL

Resumen de conocimientos básicos de la base de datos SQL

Resumen del conocimiento avanzado de la base de datos SQL

Excel es la herramienta más utilizada en el análisis de datos. Excel se puede utilizar para completar la limpieza de datos, el preprocesamiento y las operaciones más comunes de clasificación, filtrado, clasificación y resumen de datos y pivote de datos, y estas operaciones se pueden implementar con SQL. SQL no solo puede leer datos de la base de datos, sino que también puede devolver directamente los resultados requeridos a través de diferentes declaraciones de función SQL, lo que mejora en gran medida la eficiencia de sus cálculos en las aplicaciones cliente.

1 Procesamiento de datos duplicados para

encontrar registros duplicados


SELECT * FROM user 
Where (nick_name,password) in
(
SELECT nick_name,password 
FROM user 
group by nick_name,password 
having count(nick_name)>1
);

Buscar registros de deduplicación

Encuentra el registro con la identificación más grande

SELECT * FROM user 
WHERE id in
(SELECT max(id) FROM user
group by nick_name,password 
having count(nick_name)>1
);

Eliminar registros duplicados

Solo mantenga el registro con el valor de identificación más pequeño

DELETE  c1
FROM  customer c1,customer c2
WHERE c1.cust_email=c2.cust_email
AND c1.id>c2.id;
DELETE FROM user Where (nick_name,password) in
(SELECT nick_name,password FROM
    (SELECT nick_name,password FROM user 
    group by nick_name,password 
    having count(nick_name)>1) as tmp1
)
and id not in
(SELECT id FROM
    (SELECT min(id) id FROM user 
     group by nick_name,password 
     having count(nick_name)>1) as tmp2
);

2 Procesamiento de valor perdido

Encuentra registros de valores perdidos


SELECT * FROM customer
WHERE cust_email IS NULL;

Actualizar columna para llenar con valores vacíos


UPDATE sale set city = "未知" 
WHERE city IS NULL;

UPDATE orderitems set 
price_new=IFNULL(price_new,5.74);

Consultar y llenar la columna vacía

SELECT AVG(price_new) FROM orderitems;

SELECT IFNULL(price_new,5.74) AS bus_ifnull
FROM orderitems;

3 Columna calculada

Actualizar tabla para agregar columnas calculadas


ALTER TABLE orderitems ADD price_new DECIMAL(8,2) NOT NULL;

UPDATE orderitems set price_new= item_price*count;


Consultar columnas calculadas


SELECT item_price*count as sales FROM orderitems;

4 Ordenar

Ordenar por varias columnas


SELECT * FROM orderitems
ORDER BY price_new DESC,quantity;

Consultar los primeros registros

SELECT * FROM orderitems
ORDER BY price_new DESC LIMIT 5;

Consultar el décimo valor más grande


SELECT DISTINCT price_new
FROM orderitems
ORDER BY price_new DESC LIMIT 9,1;

Rango

Mismos rangos con el mismo valor y rangos consecutivos


SELECT prod_price,
(SELECT COUNT(DISTINCT prod_price)
FROM products
WHERE prod_price>=a.prod_price
) AS rank
FROM products AS a
ORDER BY rank ;

5 Procesamiento de cadenas

Reemplazo de cuerdas


UPDATE data1 SET city=REPLACE(city,'SH','shanghai');

SELECT city FROM data1;

Interceptar por cadena de posición

La interceptación de cadenas se puede utilizar para clasificar datos en
las funciones de intercepción de cadenas de MySQL: left (), right (), substring (), substring_index ()


SELECT left('example.com', 3);

Tomar desde la posición del 4to carácter de la cadena hasta el final


SELECT substring('example.com', 4);

Comience desde la posición del cuarto carácter de la cadena, solo tome 2 caracteres


SELECT substring('example.com', 4, 2);

Interceptar cadena por palabra clave

Tome todos los caracteres antes del primer separador, el resultado es www.


SELECT substring_index('www.google.com','.',1);

Tome todos los caracteres después del penúltimo separador, el resultado es google.com;


SELECT substring_index('www.google.com','.',-2);

6 Proyección

Utilice operadores para lograr un filtrado avanzado
Utilice operadores como AND OR IN NOT para lograr un filtrado avanzado

SELECT prod_name,prod_price FROM Products
WHERE vend_id IN('DLL01','BRS01');
SELECT prod_name FROM Products WHERE NOT vend_id='DLL01';

Filtrado de comodines

Los comodines comunes son% _ [] ^


SELECT * from customers WHERE country LIKE "CH%";

7 unión de mesa

La conexión de tabla SQL puede lograr una función similar a la función Vlookup en Excel


SELECT vend_id,prod_name,prod_price
FROM Vendors INNER JOIN Products
ON Vendors.vend_id=Products.vend_id;

SELECT prod_name,vend_name,prod_price,quantity
FROM OderItems,Products,Vendors
WHERE Products.vend_id=Vendors.vend_id
AND OrderItems.prod_id=Products.prod_id
AND order_num=20007;

Self-join usa la misma tabla varias veces en una instrucción SELECT


SELECT c1.cust_od,c1.cust_name,c1.cust_contact
FROM Customers as c1,Customers as c2
WHERE c1.cust_name=c2.cust_name
AND c2.cust_contact='Jim Jones';

8 pivote

La agrupación de datos puede realizar la función de la tabla dinámica en Excel

La agrupación de datos
se utiliza para agrupar datos después de haber utilizado para filtrar datos después de la agrupación.


SELECT order_num,COUNT(*) as items
FROM OrderItems
GROUP BY order_num HAVING COUNT(*)>=3;

Mesa cruzada

Realizado por la función CASE WHEN


SELECT data1.city,
CASE WHEN colour = "A" THEN price END AS A,
CASE WHEN colour = "B" THEN price END AS B,
CASE WHEN colour = "C" THEN price END AS C,
CASE WHEN colour = "F" THEN price END AS F
FROM data1

Supongo que te gusta

Origin blog.51cto.com/15057820/2654650
Recomendado
Clasificación