sql >> データベース >  >> RDS >> Mysql

MySQLで過去15日間のレコードを取得する方法

    MySQLで過去15日間の行を取得する必要がある場合があります。 MySQLで過去15日間のレコードを取得する方法は次のとおりです。また、過去15日間に登録したユーザー数を取得したり、過去15日間の売上データを選択してさらに分析したりすることもできます。

    MySQLで過去15日間のレコードを取得する方法

    MySQLで過去15日間のレコードを取得する手順は次のとおりです。

    次の表があるとします。sales(order_date、sale、orders) 1日の注文数と販売額が含まれています。

    mysql> create table  sales(order_date date,sale int, orders int);
    
    mysql> insert into sales(order_date ,sale ,orders )
         values( '2020-04-28' ,  300 ,     10 ),
         ( '2020-04-29' ,  250 ,     15 ),
         ( '2020-04-30' ,  250 ,     12 ),
         ( '2020-05-01' ,  250 ,     14 ),
         ( '2020-05-02' ,  150 ,     20 ),
         ( '2020-05-03' ,  300 ,     21 ),
         ( '2020-05-04' ,  200 ,     15 ),
         ( '2020-05-05' ,  200 ,     17 ),
         ( '2020-05-06' ,  250 ,     12 ),
         ( '2020-05-07' ,  150 ,     15 ),
         ( '2020-05-08' ,  300 ,     12 ),
         ( '2020-05-09' ,  280 ,     18 ),
         ( '2020-05-10' ,  320 ,     16 ),
         ( '2020-05-11' ,  400 ,     15 ),
         ( '2020-05-12' ,  250 ,     13 ),
         ( '2020-05-13' ,  100 ,     16 ),
         ( '2020-05-14' ,  200 ,     18 );
    
    mysql> select * from sales;
    +------------+------+--------+
    | order_date | sale | orders |
    +------------+------+--------+
    | 2020-04-28 |  300 |     10 |
    | 2020-04-29 |  250 |     15 |
    | 2020-04-30 |  250 |     12 |
    | 2020-05-01 |  250 |     14 |
    | 2020-05-02 |  150 |     20 |
    | 2020-05-03 |  300 |     21 |
    | 2020-05-04 |  200 |     15 |
    | 2020-05-05 |  200 |     17 |
    | 2020-05-06 |  250 |     12 |
    | 2020-05-07 |  150 |     15 |
    | 2020-05-08 |  300 |     12 |
    | 2020-05-09 |  280 |     18 |
    | 2020-05-10 |  320 |     16 |
    | 2020-05-11 |  400 |     15 |
    | 2020-05-12 |  250 |     13 |
    | 2020-05-13 |  100 |     16 |
    | 2020-05-14 |  200 |     18 |
    +------------+------+--------+
    

    ボーナスリード:各グループの最後のレコードを取得する方法

    SQLで過去15日間の売上データを取得する方法

    MySQLで過去15日間のレコードを取得するためのSQLクエリは次のとおりです

    mysql> select * from sales
           where order_date> now() - INTERVAL 15 day;
    +------------+------+--------+
    | order_date | sale | orders |
    +------------+------+--------+
    | 2020-04-30 |  250 |     12 |
    | 2020-05-01 |  250 |     14 |
    | 2020-05-02 |  150 |     20 |
    | 2020-05-03 |  300 |     21 |
    | 2020-05-04 |  200 |     15 |
    | 2020-05-05 |  200 |     17 |
    | 2020-05-06 |  250 |     12 |
    | 2020-05-07 |  150 |     15 |
    | 2020-05-08 |  300 |     12 |
    | 2020-05-09 |  280 |     18 |
    | 2020-05-10 |  320 |     16 |
    | 2020-05-11 |  400 |     15 |
    | 2020-05-12 |  250 |     13 |
    | 2020-05-13 |  100 |     16 |
    | 2020-05-14 |  200 |     18 |
    +------------+------+--------+
    

    上記のクエリでは、システム関数 now()を使用しています。 現在の日時を取得します。次に、INTERVAL句を使用して、現在の日時の15日前にorder_dateが該当するレコードをフィルタリングします。

    ボーナスリード:MySQLで過去12か月のデータを取得する方法

    過去15日間に登録と新規ユーザーを獲得する方法

    同様に、MySQLで過去15日間に新しいサインアップとユーザーを取得することもできます。次のテーブルがあるとしますUsers(user_id、date_joined) サインアップデータが含まれています。

    mysql> select * from users;
    +-------------+---------+
    | date_joined | user_id |
    +-------------+---------+
    | 2020-04-20  |     213 |
    | 2020-04-22  |     214 |
    | 2020-04-23  |     215 |
    | 2020-04-24  |     216 |
    | 2020-04-25  |     217 |
    | 2020-04-26  |     218 |
    | 2020-04-27  |     219 |
    | 2020-04-28  |     220 |
    | 2020-04-29  |     221 |
    | 2020-05-30  |     222 |
    | 2020-05-30  |     222 |
    | 2020-05-01  |     223 |
    | 2020-05-01  |     224 |
    | 2020-05-02  |     225 |
    | 2020-05-02  |     226 |
    | 2020-05-03  |     226 |
    | 2020-05-04  |     227 |
    | 2020-05-04  |     228 |
    | 2020-05-05  |     229 |
    | 2020-05-05  |     230 |
    | 2020-05-05  |     231 |
    | 2020-05-05  |     232 |
    | 2020-05-06  |     233 |
    | 2020-05-08  |     234 |
    +-------------+---------+
    

    ボーナスリード:MySQLビューを作成する方法

    これは、MySQLで過去15日間に毎日新規登録とユーザーを取得するためのSQLクエリです。

    mysql> select * from users
           where date_joined> now() - INTERVAL 15 day;
    +-------------+---------+
    | date_joined | user_id |
    +-------------+---------+
    | 2020-04-23  |     215 |
    | 2020-04-24  |     216 |
    | 2020-04-25  |     217 |
    | 2020-04-26  |     218 |
    | 2020-04-27  |     219 |
    | 2020-04-28  |     220 |
    | 2020-04-29  |     221 |
    | 2020-05-30  |     222 |
    | 2020-05-30  |     222 |
    | 2020-05-01  |     223 |
    | 2020-05-01  |     224 |
    | 2020-05-02  |     225 |
    | 2020-05-02  |     226 |
    | 2020-05-03  |     226 |
    | 2020-05-04  |     227 |
    | 2020-05-04  |     228 |
    | 2020-05-05  |     229 |
    | 2020-05-05  |     230 |
    | 2020-05-05  |     231 |
    | 2020-05-05  |     232 |
    | 2020-05-06  |     233 |
    | 2020-05-08  |     234 |
    +-------------+---------+
    

    上記のクエリでは、システム関数 now()を使用しています。 現在の日時を取得します。次に、INTERVAL句を使用して、現在の日時の15日前にorder_dateが該当するレコードをフィルタリングします。

    それでおしまい!ご覧のとおり、INTERVAL句を使用してMySQLで過去15日間のレコードを取得するのは非常に簡単です。

    Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。

    1. PL / SQL内にOracleDatabaseオブジェクト・タイプを作成することは可能ですか?

    2. MySQL ACOS()関数–数値のアークコサインを返します

    3. PostgreSQLのシステム列を理解する

    4. ORA-06502:PL / SQL:数値または値のエラー:文字stringバッファが小さすぎます