[英]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.