簡體   English   中英

SQL行輸出按時間戳分組

[英]SQL row output grouped by time stamp

我有以下表結構:

Time_Stamp  Number
9/07/13     234
9/07/13     345
9/07/13     456
10/07/13    765
10/07/13    834
10/07/13    257

我想這樣打印:

9/07/13     234 345 456
10/07/13    765 834 257

知道我該怎么做嗎?

編輯:

這是我現在打印行的方式:

    if(!$result_db_post = $db->query($query)){
          die('There was an error running the query [' . $db->error . ']');
      }

       while($row = $result_db_post->fetch_assoc()){

          echo $row['time_stamp'] ." ". $row['number'];
          echo "<br />";                               
}

結果如下:

    9/07/13 234
    9/07/13 345
    9/07/13 456
   10/07/13 765
   10/07/13 834
   10/07/13 257

我試過兩個查詢,都導致相同的輸出。

select Time_Stamp, group_concat(Number separator ' ') as Numbers
from t
group by Time_Stamp;

我也嘗試過:

SELECT Time_Stamp, GROUP_CONCAT(Number) From table group by Time_Stamp

知道我在做什么錯嗎?

您似乎想按與原始數據相同的順序排列數字。 但是,SQL表本質上是無序的,因此存在問題。

目前尚不清楚您是希望將它們放在一列還是三列中。 作為一欄,您可以使用:

select Time_Stamp, group_concat(Number separator ' ') as Numbers
from t
group by Time_Stamp;

如果要在三欄中列出它們,可以執行以下操作:

select Time_Stamp,
       substring_index(group_concat(Number), ',', 1) as Number1,
       substring_index(substring_index(group_concat(Number), ',', 2), -1) as Number2,
       substring_index(substring_index(group_concat(Number), ',', 3), -1) as Number3
from t
group by Time_Stamp;

但是,順序是不確定的。

使用GROUP_CONCAT函數 ,請嘗試以下查詢:

SELECT Time_Stamp, GROUP_CONCAT(Number) From table group by Time_Stamp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM