Notas: "Declaración de Mysql

- 1, consulta los datos hace 3 días

SELECT DATE_ADD (DATE_SUB (CURDATE (), INTERVAL 3 DAY), INTERVAL 0 HOUR)

--2, consulte los datos de los últimos siete días, si los datos están vacíos, llénelos con 0

seleccione v1.insurance_time, ifnull (v2.incount, 0) from (
        SELECT DATE_ADD (DATE_SUB (CURDATE (), INTERVAL 1 DAY), INTERVAL 0 HOUR) as insurance_time
    union all
    SELECT DATE_ADD (DATE_SUB (CURDATE (), INTERVAL 2 DAY) , INTERVAL 0 HORA) como
    unión de
    tiempo_seguro todos SELECT DATE_ADD (DATE_SUB (CURDATE (), INTERVAL 3 DAY), INTERVAL 0 HORA) como
    unión de
    tiempo_seguro todos SELECT DATE_ADD (DATE_SUB (CURDATE (), INTERVAL 4 DAY), INTERVAL 0 HORA) como Insurance_time
    union all
    SELECT DATE_ADD (DATE_SUB (CURDATE (), INTERVAL 5 DAY), INTERVAL 0 HOUR) as insurance_time
    union all
    SELECT DATE_ADD (DATE_SUB (CURDATE (), INTERVAL 6 DAY), INTERVAL 0 HOUR) como insurance_time
    union all
    SELECT DATE_ADD (DATE_SUB (CURDATE (), INTERVAL 7 DAY), INTERVAL 0 HOUR) as insurance_time
) v1 LEFT JOIN (
    SELECT insurance_time, incount from tablexxx
        GROUP BY insurance_time
) v2 en v1.insurance_time = v2.insurance_time

 

3. El campo "mensaje" de una tabla está separado por comas. La fila de datos separados por comas se divide en varias filas de datos con la misma identificación y diferentes problemas (mysql.help_topic es una tabla nativa bajo la base de datos mysql, no una mesa de construcción propia)

SELECT a.id, SUBSTRING_INDEX (SUBSTRING_INDEX (a.fail_message, ',', b.help_topic_id + 1), ',', - 1) 
FROM
baoji_sendagainlog a
JOIN
mysql.help_topic b
ON b.help_topic_id <(LENGTH (a.fail_message) ) - LENGTH (REPLACE (a.fail_message, ',', '')) + 1)
ORDER BY a.id; 
 

4. Eliminar datos duplicados

Escenario: En una tabla, los campos channel_id, data_pipe_id, owner_company_id, company_requirements_id y receive_media contienen datos duplicados. Eliminamos estos datos duplicados e idénticos y conservamos el único.

(Si la subconsulta en la declaración de eliminación de mysql involucra la tabla eliminada, debe usar la tabla intermedia, pero Oracle no)

delete FROM x_leads_count WHERE id IN (SELECT b.id FROM
   (
    SELECT
     c.id
    FROM
     x_leads_count c
    WHERE
     c.insurance_time = '2021-01-12 00:00:00'
    GROUP BY
     c.channel_id,
     c.data_pipe_id,
     c.owner_company_id ,
     c.company_requirements_id,
     c.receive_media
    TENIENDO
     recuento (c.id)> 1
   ) b
 );

Supongo que te gusta

Origin blog.csdn.net/nienianzhi1744/article/details/105491953
Recomendado
Clasificación