Найти максимальное вхождение года в Улей - PullRequest
0 голосов
/ 31 января 2019

Вот некоторые записи по кредитным картам, мне нужно найти год с максимальным количеством дат истечения срока действия карты.Поскольку даты не в формате YYYY/MM/DD, поэтому в схеме я определил даты как строковый тип

Card Type Full Name,Card Holder's Name,Issue Date,Expiry Date,Card PIN

Discover,Brenda D Peterson,01/2017,01/2022,1998
Diners Club International,Dawn U Reese,12/2015,12/2013,3915 
Diners Club International,Helen P Perry,02/2007,02/2020,2319
American Express,Christine E Kim,08/2011,08/2013,9017

1 Ответ

0 голосов
/ 31 января 2019

Этот запрос даст вам год с наибольшим количеством записей.

select 
   substr(expiry_date, instr(expiry_date, '/')+1) as expiry_year,
   count(*) as cnt
from customers
group by substr(expiry_date, instr(expiry_date, '/')+1)
order by cnt desc
limit 1;

Есть вероятность, что количество карт, истекающих в этом году, превышает 1 год, в таких случаях вы можете использовать запрос ниже

select 
   substr(expiry_date, instr(expiry_date, '/')+1) as expiry_year
from customers
having count(*) = (
   select max(cnt) from (
      select 
         substr(expiry_date, instr(expiry_date, '/')+1) as expiry_year,
         count(*) as cnt
      from customers
         group by substr(expiry_date, instr(expiry_date, '/')+1)
   )t
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...