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

PHPを使用したMySQLのタイムスタンプのグループ化

    ピーター

    SELECT COUNT(*), HOUR(timecode)
    FROM timecodeTable
    GROUP BY HOUR(timecode);
    

    上記のデータを前提とした結果セットは、次のようになります。

    +----------+----------------+
    | COUNT(*) | HOUR(timecode) |
    +----------+----------------+
    |       10 |             18 | 
    +----------+----------------+
    

    さらに多くの関連関数が見つかりますここ 。

    編集

    あなたのコメントの出力に基づいて私自身のいくつかのテストを行った後、私はあなたのデータベースがエピックフェイルの状態にあると判断しました 。 :)タイムスタンプとしてINTを使用しています。これは決して良い考えではありません。 TIMESTAMP/DATETIMEの代わりにINTを使用する正当な理由はありません。

    そうは言っても、上記の例を次のように変更する必要があります。

    SELECT COUNT(*), HOUR(FROM_UNIXTIME(timecode))
    FROM timecodeTable
    GROUP BY HOUR(FROM_UNIXTIME(timecode));
    

    編集2

    これを実現するために、追加のGROUPBY句を使用できます。

    SELECT 
      COUNT(*),
      YEAR(timecode),
      DAYOFYEAR(timecode),
      HOUR(timecode)
    FROM timecodeTable
    GROUP BY YEAR(timecode), DAYOFYEAR(timecode), HOUR(timecode);
    

    簡潔にするためにFROM_UNIXTIME()を省略したことに注意してください。




    1. XAMPPフォルダー内のMySQLデータベーステーブルの正確な場所はどこですか?

    2. phpデータベースの画像は問題を示しています

    3. カーソルオプションのフォローアップ

    4. oracle pl/sqlカーソルの列をループする方法