2011-05-11 14 views

Respuesta

48

¿Qué tal esto? Uso de la función DATE:

SELECT DATE(FROM_UNIXTIME(MyTimestamp)) AS ForDate, 
     COUNT(*) AS NumPosts 
FROM MyPostsTable 
GROUP BY DATE(FROM_UNIXTIME(MyTimestamp)) 
ORDER BY ForDate 

Esto le mostrará el número de mensajes en cada fecha que la tabla tiene datos para.

+0

Encontré mi respuesta, pero su respuesta es incorrecta, es nula, correcta es: 'FECHA (FROM_UNIXTIME (timestamp))' –

+0

Su respuesta editada es correcta, gracias –

+1

@ p.campbell: cómo puede limitar las filas para cada fecha ? ejemplo: para '2011-05-11' tengo 10 publicaciones y para '2011-05-12' 20 publicaciones, quiero mostrar' 2 publicaciones' para cada fecha, ¿me pueden ayudar? –

0
SELECT 
    * 
FROM 
(
    SELECT DATE(FROM_UNIXTIME(MyTimestamp)) AS ForDate, 
      ROW_NUMBER() OVER (PARTITION BY DATE(FROM_UNIXTIME(MyTimestamp)) ORDER BY MyTimeStamp) AS PostRowID, 
      * 
    FROM MyPostsTable 
) 
    AS sequenced_daily_posts 
WHERE 
    ForDate = <whatever date(s) you want> 
    AND PostRowID <= 2 
+0

Gracias, pero vea mi último comentario: 'solo quiero mostrar 2 de las últimas publicaciones en cada fecha' Creo que esta consulta solo muestra publicaciones que en la fecha de que tiene 2 publicaciones –

+0

Probé Usted consulta y devuelve error de sintaxis en' (PARTICIÓN POR FECHA (FROM_UNIXTIME (MyTimestamp))) ' –

+0

Si un día tiene 1 publicación, se mostrará una publicación para ese día. Si un día tiene 2 publicaciones, mostrará las dos publicaciones de ese día. Si un día tiene 3 o más publicaciones, solo mostrará las 2 primeras publicaciones para ese día. (Agregue DESC al ORDER BY para que muestre las dos últimas publicaciones de cada día.) Este límite de 2 por día no tiene ninguna incidencia en si tiene cien días, totalizando hasta 200 registros devueltos. – MatBailie

24
SELECT DATE(timestamp) AS ForDate, 
     COUNT(*) AS NumPosts 
FROM user_messages 
GROUP BY DATE(timestamp) 
ORDER BY ForDate 

Esta comprobado por mí. Tengo una marca de tiempo como "2013-03-27 15:46:08".

+0

This trabajado en MySQL 5.1.52. DATE (FROM_UNIXTIME (MyTimestamp)) en respuesta anterior devuelto nulo. –

Cuestiones relacionadas