25

ShoppingDates の datetime 列があります。

1000行あるとしましょう

  • 2012 年 7 月 18 日午後 5 時 33 分 39 秒
  • 2012 年 7 月 16 日 18:64:39
  • 2012 年 7 月 14 日午後 7 時 34 分 39 秒
  • 2012 年 7 月 13 日午後 8 時 30 分 39 秒
  • 2012 年 7 月 13 日午後 8 時 37 分 39 秒
  • など....

    時間枠内に毎回出現する回数を数えたい

    so 5:00 p.m - 5:59:59 pm
    so 6:00 p.m - 6:59:59 pm
    so 7:00 p.m - 7:59:59 pm
    so 8:00 p.m - 8:59:59 pm
    

    したがって、上記の結果で私は得るでしょう

    1|5pm-6pm
    1|6pm-7pm
    1|7pm-8pm
    2|8pm-9pm
    

    どんな助けでも大歓迎です。

    ありがとう!

    4

    2 に答える 2

    64

    次のようなものが欲しいだけだと思います:

    SELECT HOUR(ShoppingDate), COUNT(*) FROM YourTable
    GROUP BY HOUR(ShoppingDate)
    
    于 2013-03-29T17:13:36.737 に答える
    4

    これを試して

    SELECT 
      CONCAT( HOUR(ShoppingDate), ' to ', CONCAT( HOUR(ShoppingDate), ':59:59' ) ) as time_frame,
      COUNT(*) 
    FROM 
      temp
    GROUP BY 
      DATE(ShoppingDate), 
      HOUR(ShoppingDate)
    

    これがSQLfiddleです

    注: ShoppingDate は日時フィールドであると想定しています

    于 2013-03-29T17:32:06.300 に答える