- 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
);