注-「Mysqlステートメント

-1、3日前にデータをクエリします

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

--2、過去7日間のデータをクエリします。データが空の場合は、0を入力します。

select 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 HOUR)as     Insurance_time
    union all
SELECT DATE_ADD(DATE_SUB(CURDATE()、INTERVAL 3 DAY)、INTERVAL 0 HOUR)as     Insurance_time
    union all
SELECT DATE_ADD(DATE_SUB(CURDATE()、INTERVAL 4 DAY)、INTERVAL 0 HOUR)as insurance_timeの
    組合全て
    insurance_timeのようなSELECT DATE_ADD(DATE_SUB(CURDATE()、INTERVAL 5日)、INTERVAL 0時間)
    UNION ALL
    SELECT DATE_ADD(DATE_SUB(CURDATE()、INTERVAL 6日)、INTERVAL 0時間)insurance_timeのような
    組合全て
    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 on v1.insurance_time = v2.insurance_time

 

3.テーブルの「メッセージ」フィールドはコンマで区切られます。コンマで区切られたデータの行は、同じIDで問題が異なる複数のデータ行に分割されます(mysql.help_topicはmysqlデータベースの下のネイティブテーブルであり、自作テーブル)

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.重複データを削除します

シナリオ:テーブルでは、フィールドchannel_id、data_pipe_id、owner_company_id、company_requirements_id、およびreceive_mediaにすべて重複データが含まれています。これらの重複した同一のデータを削除し、1つだけを保持します。

(mysqlのdeleteステートメントのサブクエリに削除されたテーブルが含まれる場合、中間テーブルを使用する必要がありますが、Oracleは使用しません)

削除FROMx_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
    HAVING
     count(c.id)> 1
   )b
 );

おすすめ

転載: blog.csdn.net/nienianzhi1744/article/details/105491953