SQL 필수 - 내부 링크
16924 단어 sql
http://dp.pt.xiaomi.com/job/job_details/339836
with intern_t as (--
select id,brand,modelname,
from_unixtime(cast(lastactivetime/1000 as int),'yyyy-MM-dd') as lastactivetime,
-- !!! dense rank, device , ,
dense_rank() over (partition by id order by lastactivetime desc) as rank
from profile.device_state_accumulator_all
where date <= ${date-1} and date >= ${date-30} -- 30
and from_unixtime(cast(lastactivetime/1000 as int),'yyyyMM') = substr(${date-1},1,6)
and finalCountry=" "
),
not_active_continuous_table as (
select brand,modelname,
(datediff(t1.lastactivetime,t2.lastactivetime)-1) as notactive_continuous_days,
count(distinct t1.id) as not_active_continuous_days_counts
from (select id,brand,modelname,lastactivetime from intern_t where rank=1) t1
inner join (select id,lastactivetime from intern_t where rank=2)t2
on t1.id = t2.id
group by brand,modelname,(datediff(t1.lastactivetime,t2.lastactivetime)-1)
having notactive_continuous_days>=15),
active_days_permonth_table as ( -- x ( , )
select brand,modelname,
(from_unixtime(unix_timestamp(cast(${date-1} as string), 'yyyyMMdd'),'dd')-active_days_permonth)as not_active_days_permonth,
count(distinct id) as not_active_counts
from
(select id,brand,modelname,-- - =
count(distinct lastactivetime) as active_days_permonth
from intern_t
group by id,brand,modelname) ttt
group by brand,modelname,(from_unixtime(unix_timestamp(cast(${date-1} as string), 'yyyyMMdd'),'dd')-active_days_permonth)
)
insert overwrite table miui_data.sales_newinfo_table partition(date=${date-1})
select not_active_continuous_table.brand as brand,not_active_continuous_table.modelname as modelname,
notactive_continuous_days,not_active_days_permonth,
not_active_continuous_days_counts,not_active_counts
from not_active_continuous_table
full outer join active_days_permonth_table
on not_active_continuous_table.brand = active_days_permonth_table.brand
and not_active_continuous_table.modelname = active_days_permonth_table.modelname
3 일 연속 활약
with t as (--
select id,
from_unixtime(cast(lastactivetime/1000 as int),'yyyy-MM-dd') as lastactivetime,
-- !!! dense rank, device , ,
dense_rank() over (partition by id order by lastactivetime desc) as rank
from profile.device_state_accumulator_all
where date <= ${date-1} and date >= ${date-30} -- 30
and from_unixtime(cast(lastactivetime/1000 as int),'yyyyMM') = substr(${date-1},1,6)
and finalCountry=" "
)
select t1.id as id
from
(select * from t) as t1
inner join
(select * from t) as t2
on t1.id = t2.id
where t2.rank - t1.rank = 2
and datediff(t2.date,t1.date) = 2
클래스 중 클래스 교차 비례
현재 두 개의 데이터 가 있 는데, 한 열 은 userid 이 고, 한 열 은 text 이 며, text 데이터 에는 각종 구기 운동 이 있 는데, 예 를 들 어 농구, 축구 등 이다.이 데이터 시트 는 모든 사용자 가 좋아 하 는 구기 운동 이 고 모두 몇 개의 구기 운동 이 있 는 지 모 르 며 모든 구기 운동 에서 각 다른 구기 운동 을 좋아 하 는 사용자 가 차지 하 는 비례 를 구 한 다 는 뜻 이다.예 를 들 어 농 구 를 좋아 하 는 사람 중 에 축 구 를 좋아 하 는 사람 이 얼마나 되 고 배드민턴 을 좋아 하 는 지 이런 교차 비율 은
select text1,text2,count(distinct id) as counts
from
(select t1.id as id,t1.text as text1,t2.text as text2
from
(select id,text from table) t1
inner join
(select id,text from table)t2
on t1.id = t2.id) table
group by text1,text2
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
깊이 중첩된 객체를 정확히 일치 검색 - PostgreSQL목차 * 🚀 * 🎯 * 🏁 * 🙏 JSON 객체 예시 따라서 우리의 현재 목표는 "고용주"사용자가 입력한 검색어(이 경우에는 '요리')를 얻고 이 용어와 정확히 일치하는 모든 사용자 프로필을 찾는 것입니다. 즐거운 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.