2013-10-04 158 views
0

我有一張表記錄了UNIX時間有一個Time字段的事務,所以每行都是一個事務。 現在我想知道哪一秒有一天中最大的交易?選擇每天總和()的最大值

結果應該是:

 
1-Oct-2013 20:02:34 45 ->(in day 1, at 20:02:34, we have 45 transaction for maximum, so on) 
2-Oct-2013 12:34:21 99 
3-Oct-2013 15:02:33 70 

請幫幫忙,在此先感謝。

+0

交易的數量相同的最高值兩個時間戳你嘗試了什麼,你卡在哪裏? –

回答

0

嘗試像下面的查詢

Select time, Max(count) as max_count from (
SELECT Date_format(from_unixtime(unix_timestamp_column), '%Y-%m-%d') as date, 
     from_unixtime(unix_timestamp_column) as time, 
     count(*) as count 
from your_table group by time) a group by Date 
0
  • 第一,得到了時間的唯一記錄

SELECT DISTINCT your_time_column_name FROM表名;

  • 然後依次通過檢查記錄與同時間:

SELECT * FROM table_name的WHERE your_time_column_name = 「時間」

  • 再算上並找到最大
0
SELECT MAX(COUNT_NO), TIME_COLUMN FROM (SELECT COUNT(*) COUNT_NO ,TIME_COLUMN FROM  
TABLE_NAME 
GROUP BY TIME_COLUMN) 

試試看。

0
select yourtimecolumn,max(totalTrans) from (
select yourtimecolumn, count(id) as totalTrans 
    from yourtable 
    group by yourtimecolumn)a 
group by day(yourtimecolumn) 
1

一種方式做到這一點

SELECT FROM_UNIXTIME(time) time, MAX(tcount) tcount 
    FROM 
(
    SELECT time, COUNT(*) tcount 
    FROM transactions 
    GROUP BY time 
) q 
GROUP BY DATE(FROM_UNIXTIME(time)) 

這裏是SQLFiddle演示


現在,如果你希望能夠看到每天最高交易時間戳與領帶,然後您需要模擬DENSE_RANK()分析功能。一個辦法做到這一點

SELECT FROM_UNIXTIME(a.time) time, a.tcount 
    FROM 
(
    SELECT time, COUNT(*) tcount 
    FROM transactions 
    GROUP BY time 
) a JOIN 
(
    SELECT DATE(FROM_UNIXTIME(time)) date, MAX(tcount) tcount 
    FROM 
    (
    SELECT time, COUNT(*) tcount 
     FROM transactions 
    GROUP BY time 
) q 
    GROUP BY DATE(FROM_UNIXTIME(time)) 
) b 
    ON DATE(FROM_UNIXTIME(a.time)) = b.date 
    AND a.tcount = b.tcount; 

這裏是SQLFiddle演示

注:,在這個例子中,你必須有在第一天

+0

@ user2845662有幫助嗎?你的問題需要更多幫助嗎? – peterm