Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL:групиране по дата RANGE?

Не съм съвсем сигурен относно групирането на периодите от време – трябва да дефинирате диапазона от дати, който бихте искали и тогава може би бихте могли да ОБЕДИНИТЕ тези заявки:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Маркирайте Номер на текущата страница PHP Пагинация

  2. mysql избира САМО дублиращи се записи от базата данни

  3. XAMPP Стартира автоматично при стартиране на Windows 7

  4. Архивиране на изгледи с Mysql Dump

  5. Свържете mySQL с Android