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

MySQL:日付でグループ化範囲?

    日付範囲のグループ化については正確にはわかりません。必要な日付範囲を定義する必要があります。そうすれば、これらのクエリを統合できます。

    SELECT 
        'Range 1' AS 'date_range',
        search_query_keyword
    FROM search_queries
    WHERE search_query_date >= '.$fromRange1.' AND search_query_date <= '.$toRange1.'
    UNION
    SELECT 
        'Range 2' AS 'date_range',
        search_query_keyword
    FROM search_queries
    WHERE search_query_date >= '.$fromRange2.' AND search_query_date <= '.$toRange2.'
    GROUP BY 1,2
    

    または、「30日、60日など」のように、それらを何日経過したかのグループに入れたい場合は、次のようにすることができます。

    SELECT 
        (DATEDIFF(search_query_date, NOW()) / 30) AS date_group,
        search_query_keyword
    FROM search_queries
    GROUP BY date_group, search_query_keyword
    

    編集: あなたが提供したさらなる情報に基づいて、このクエリはあなたが望むものを生み出すはずです:

    SELECT 
        search_query_keyword,
        COUNT(search_query_keyword) AS keyword_count
    FROM search_queries
    WHERE search_query_date >= '.$from.' AND search_query_date <= '.$to.'
    GROUP BY search_query_keyword
    


    1. T-SQL動的SQLおよび一時テーブル

    2. 何があっても、HibernateでMySQLINSERTステートメントをバッチ処理できません

    3. 会議を最大限に活用するための7つの戦略

    4. SQLLIMITおよびOFFSETクエリを使用してすべてのレコードを選択する