簡體   English   中英

sql查詢年份差異取決於特定月份

[英]sql query year difference depended on specific month

我正在開發圖書館的圖書預訂系統。 在“預定”表中,有以下字段:id_reservation,id_user,id_book,datetime。

id_user具有特定格式,例如: 2009897652 前四位數字表示用戶在系統中注冊的年份。 所有用戶都在9月份注冊(學校圖書館)。

我想計算用戶注冊年份的預留GROUP BY。 因此,我必須找出今天和注冊年9月之間的差額(以整數為單位)。

對如何計算用戶注冊年份的預訂GROUP BY有什么幫助?

例如。

total_reservations| users_registered_years
 200              | 1 
 220              | 2 
 320              | 3
 400              | 4

非常感謝!!

為什么不按年完成呢?

select left(id_user, 4) as year, count(*)
from reservations 
group by left(id_user, 4)
order by year;

然后,您可以減去當前年份:

select year(now()) - left(id_user, 4) as diff, count(*)
from reservations 
group by left(id_user, 4)
order by diff;

我不確定是否值得修正結果以使其在任何日期正確,除非您計划將此查詢放入應用程序中。 然后,邏輯只是添加一個偏移量,例如year(now()) - left(id_user, 4) + (case when month(now()) >= 10 then 1 else 0 end)

暫無
暫無

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

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