2016-01-02 175 views
0

有人可以幫我關於這個Rails查詢Active Record Rails查詢

我有這樣的mysql表。有一個娛樂俱樂部。 ticket_id是唯一的。每張票(會員)都有入場和出場。

我想確定在特定的時間裏面有多少個成員。假設如果我想知道內部成員的時間'2015-12-17 16:48:00'。

id ticket_id event_type timestamp 

1739 869 entry 2015-12-17 15:09:51 

1740 869 entry 2015-12-17 17:46:55 

1730 864 exit 2015-12-17 16:48:27 

回答

1

假設1:每ticket_id可以有多個入口和出口。您提供的數據有ticket_id 869的2個條目。因此,ActiveQuery的結果取決於uniq。即使一個人在需要的時間之前有多個條目(或退出),它們也只計算一次。

假設2:在某些情況下,在兩個條目之間,可能無法捕獲退出,如樣本數據所示。因此,結果中的某些差異可能會蔓延。

您可以使用下面的查詢來獲取誰在時間的一個特定的點都在裏面所有的人,說reqd_timestamp

​​

請注意,ticket_id 869將被算作是內部爲2015-12-17 16:48:00因爲他有時間戳之前的entryid 1739。他實際上可能已經在規定的時間之前退出,並且隨後以id 1740作爲另一個條目。但沒有可用的數據,無法捕獲特定的信息。

+0

謝謝。它解決了這個問題 – rubyemerite

0

試試這個

@members = Member.where("date(timestamp) =? AND event_type=?", '2015-12-17 16:48:00', 'entry').count 
相關問題