簡體   English   中英

從具有計數和基於計數條件的數據庫中選擇?

[英]Select from database with count and count based conditions?

我有一個表,其中包含與用戶有關的數據,以及兩個重要的列:

refer_count ,當在表中創建一個新條目時將其更新,並且referred_by列設置為該用戶user_id ,並且referred_by是引用他們的用戶的user_id

我想從表中選擇在特定日期后具有最高推薦人數的用戶。

例如:

如果有3個用戶,其中一個引用了另外2個用戶(假設用戶23 ),則在2/12/14上引用了用戶2,而在3/1/15上引用了用戶3。

如果截止時間是1/12/14,則返回用戶1並將Refer_count設置為2,但是如果截止時間是14年2月12日,則返回用戶1並將Refer_count設置為1。

我一直在想如何做到這一點,但我想不出一種可行的方法。 有辦法嗎?

這是通過MySQL。

編輯:我想我可能需要提供信息。

注冊日期( register_date )被用作參考日期。 我需要使用截止日期后引用的用戶數來更新Refer_count,但是我需要獲取實際用戶。 這是用於“最高引薦來源”表的。 我不知道為什么我在想辦法時遇到這么多麻煩。

SELECT user_id FROM usertable WHERE (referal_date BETWEEN '2014-12-2' AND CURDATE())ORDER BY refer_count DESC;

那是個粗略的主意。 但是,如果將所有表都放在同一個表中,則應考慮對其進行規范化。 最好將引薦保存在單獨的表中。

獲取與最大的行refer_count為您的日期條件referal_date ,使得它的后certainDate

SELECT user_id FROM table WHERE refer_count = (SELECT MAX(refer_count) FROM table) AND referal_date>certainDate;

請注意, WHERESELECT之前,因此它不會首先獲得最高計數,但是將使用日期條件進行過濾,然后獲得最高計數。

編輯:根據已編輯的問題更新查詢。

暫無
暫無

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

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