0

mysql テーブルにランダムなエントリを持つ DATETIME フィールドがあります。オブジェクト グループを選択し、4 時間のギャップがあるときにそれらを分割したいと考えています。理想的には、配列 (またはサブグループ?) 内の各グループ内のすべての ID を返すことができます。

これは私の SQL スキルを超えているようです。

興味深い解決策はありますか?

4

2 に答える 2

1

MySQLDATE_FORMAT句を使用できます。

SELECT CAST(DATE_FORMAT(date,'%Y-%m-%d %k:00:00') AS DATETIME) hour
  FROM table
 WHERE date = CURRENT_DATE - INTERVAL 4 HOUR
  GROUP BY CAST(DATE_FORMAT(date,'%Y-%m-%d %k:00:00') AS DATETIME)
于 2013-02-27T04:18:07.880 に答える
1

SQL はデータに対してセット操作を実行することを目的としていますが、求めているのは順次処理です。

そのため、SQL をひねってこれを実行しようとするのではなく、順次処理することをお勧めします。基本的な選択肢は 2 つあります。

  1. カーソルを使用して結果を処理し、ストアド プロシージャでテーブルからデータを選択します。

  2. 選択した外部のスタンドアロン言語 (Java、C#、Python、PHP など、ボートに浮かぶものは何でも) から select ステートメントを実行し、そこでデータを適切にグループ化します。

于 2013-02-27T02:38:20.603 に答える