with user_login_days as (
select usr_id,date(login_time)
from user_login_log
where date(login_time) >= date_sub(curdate(),interval 180 day)
),
dis_login_days as(
select usr_id,count(1) as login_days
from user_login_days
group by usr_id
)
select
SUM(CASE WHEN login_days BETWEEN 1 AND 5 THEN 1 ELSE 0 END) AS days_1_to_5,
SUM(CASE WHEN login_days BETWEEN 6 AND 10 THEN 1 ELSE 0 END) AS days_6_to_10,
SUM(CASE WHEN login_days BETWEEN 11 AND 20 THEN 1 ELSE 0 END) AS days_11_to_20,
SUM(CASE WHEN login_days > 20 THEN 1 ELSE 0 END) AS days_over_20
FROM
dis_login_days;
with user_login_days as (
select usr_id,date(login_time)
from user_login_log
where date(login_time) >= date_sub(curdate(),interval 181 day)
),
dis_login_days as(
select usr_id,count(1) as login_days
from user_login_days
group by usr_id
)
select
SUM(CASE WHEN login_days BETWEEN 1 AND 5 THEN 1 ELSE 0 END) AS days_1_to_5,
SUM(CASE WHEN login_days BETWEEN 6 AND 10 THEN 1 ELSE 0 END) AS days_6_to_10,
SUM(CASE WHEN login_days BETWEEN 11 AND 20 THEN 1 ELSE 0 END) AS days_11_to_20,
SUM(CASE WHEN login_days > 20 THEN 1 ELSE 0 END) AS days_over_20
FROM
dis_login_days;
with user_login_days as (
select usr_id,date(login_time)
from user_login_log
where date(login_time) >= date_sub(curdate(),interval 179 day)
),
dis_login_days as(
select usr_id,count(1) as login_days
from user_login_days
group by usr_id
)
select
SUM(CASE WHEN login_days BETWEEN 1 AND 5 THEN 1 ELSE 0 END) AS days_1_to_5,
SUM(CASE WHEN login_days BETWEEN 6 AND 10 THEN 1 ELSE 0 END) AS days_6_to_10,
SUM(CASE WHEN login_days BETWEEN 11 AND 20 THEN 1 ELSE 0 END) AS days_11_to_20,
SUM(CASE WHEN login_days > 20 THEN 1 ELSE 0 END) AS days_over_20
FROM
dis_login_days;
SELECT
COUNT(DISTINCT CASE
WHEN TIME(login_time) BETWEEN '07:30:00' AND '09:30:00'
OR TIME(login_time) BETWEEN '18:30:00' AND '20:30:00' THEN usr_id
END) AS commute,
COUNT(DISTINCT CASE
WHEN TIME(login_time) BETWEEN '11:30:00' AND '14:00:00' THEN usr_id
END) AS lunch_break,
COUNT(DISTINCT CASE
WHEN TIME(login_time) BETWEEN '22:30:00' AND '23:59:59' THEN usr_id
WHEN TIME(login_time) BETWEEN '00:00:00' AND '01:00:00' THEN usr_id
END) AS bedtime
FROM
user_login_log
WHERE
login_time >= DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m-01')
AND login_time < DATE_FORMAT(CURDATE(), '%Y-%m-01');
select round(count(case when right(card1,1) = right(card2,1) then 1 else null end)/2) as cnt,
round(count(1)/2) as ttl_cnt,
round((count(case when right(card1,1) = right(card2,1) then 1 else null end)/2) / (count(1)/2),3) as p
from hand_permutations
select round(count(case when right(card1,1) = right(card2,1) then 1 else null end)/2) as cnt,
round(count(1)/2) as ttl_cnt,
round(count(case when right(card1,1) = right(card2,1) then 1 else null end)/2 / count(1)/2,3) as p
from hand_permutations
select
sum(case when right(card1,1)=right(card2,1) then 1 else 0 end)/2 as cnt
, count(1)/2 as ttl_cnt
,cast(sum(case when right(card1,1)=right(card2,1) then 1 else 0 end)/2/count(1)/2 AS DECIMAL(4,4)) as p
from hand_permutations
select round(count(case when right(card1,1) = right(card2,1) then 1 else null end)/2) as cnt,
round(count(1)/2) as ttl_cnt,
round(count(case when right(card1,1) = right(card2,1) then 1 else null end) / count(1),3) as p
from hand_permutations
select count(case when right(card1,1) = right(card2,1) then 1 else null end) as cnt,
round(count(1)/2) as ttl_cnt,
round(count(case when right(card1,1) = right(card2,1) then 1 else null end) / count(1),3) as p
from hand_permutations
select count(case when right(card1,1) = right(card2,1) then 1 else null end) as cnt,
count(1)/2 as ttl_cnt,
round(count(case when right(card1,1) = right(card2,1) then 1 else null end) / count(1),3) as p
from hand_permutations
select count(case when right(card1,1) = right(card2,1) then 1 else null end) as cnt,
count(1) as ttl_cnt,
round(count(case when right(card1,1) = right(card2,1) then 1 else null end) / count(1),3) as p
from hand_permutations
select * from hand_permutations
where (card1 like 'K%' and card2 like 'K%')
OR(card1 like 'A%' and card2 like 'K%')
OR(card1 like 'K%' and card2 like 'A%')
OR(card1 like 'A%' and card2 like 'A%')
select gd_id , gd_nm ,count(1) as fav_count
from gd_inf as g join xhs_fav_rcd as xf on g.gd_id = xf.mch_id
group by g.gd_id
order by fav_count desc
limit 1