Domanda

Si consideri la seguente tabella che ha i campi - id (int) e DATE_CREATED (datetime):

id       date_created

 1       2010-02-25 12:25:32
 2       2010-02-26 13:40:37
 3       2010-03-01 12:02:22
 4       2010-03-01 12:10:23
 5       2010-03-02 10:10:09
 6       2010-03-03 12:45:03

Vorrei sapere il più attivo / ora più popolare del giorno per questo insieme di dati. In questo esempio, il risultato che sto cercando sarebbe 12.

idee?

È stato utile?

Soluzione 4

Mi piacciono entrambi risposte Simon e Pietro, ma non riesco a selezionare sia come accettato. Ho unito il 2 per effettuare una query più pulita che ha restituito solo l'ora popolare (non ho bisogno i conteggi).

SELECT hour(date_created) AS h 
FROM my_table 
GROUP BY h 
ORDER BY count(*) DESC 
LIMIT 1

Altri suggerimenti

Per ottenere solo l'ora più popolare, utilizzare questa query

select date_format( date_created, '%H' ) as `hour`
  from [Table]
 group by date_format( date_created, '%H' )
 order by count(*) desc
 limit 1;

Se si vuole guardare a tutti i dati, andare con questo

select count(*) as num_records
     , date_created
     , date_format( date_created, '%H' ) as `hour`
  from [Table]
 group by `hour`
 order by num_records desc;

Se volete qualcosa di un po 'più flessibile, forse per la mezz'ora o quarto d'ora, è possibile effettuare le seguenti operazioni:

SELECT floor(time_to_sec(date_created)/3600),count(*) AS period 
FROM table GROUP BY period ORDER BY c DESC

Se si desidera che la più famosa intervallo di due ore, utilizzare 7200. Il più popolare intervallo di 15 minuti, utilizzare 900. Hai solo bisogno di ricordare che si tratta di secondi (3600 secondi in un'ora).

Utilizzare la funzione hour() per estrarre l'ora, quindi fare la solita aggregazione:

SELECT count(hour(date_created)) AS c, hour(date_created) AS h FROM table GROUP BY h ORDER BY c DESC;

Si potrebbe provare questo:

SELECT 
  DATE_FORMAT(date,'%H') as hours, 
  count(*) as count 
FROM 
  myTable 
GROUP BY 
  hours 
ORDER BY 
  count DESC
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top