M
Size: a a a
M
MF
M
MF
D
MF
D
D
MF
SC
SELECTПодходит, если юзеров и дат не слишком много. Буду рад увидеть другое решение, так как это кажется явно не оптимальным. Хотя в песочнице даже для UserID вместо CounterID отрабатывает.
date,
countIf(arrayExists(x -> (x BETWEEN date - 13 and date), userDates)) as value
FROM (
SELECT groupUniqArray(EventDate) as userDates
FROM `hits_100m_obfuscated`
WHERE EventDate BETWEEN toDate('2013-06-25') - 13 and toDate('2013-08-15')
GROUP BY CounterID
) ARRAY JOIN
arrayMap(
x -> (toDate('2013-06-25') + x),
range(toUInt32(dateDiff('day', toDate('2013-06-25'), toDate('2013-08-15'))) + 1)
) as date
GROUP BY date;
A
I
SELECTПодходит, если юзеров и дат не слишком много. Буду рад увидеть другое решение, так как это кажется явно не оптимальным. Хотя в песочнице даже для UserID вместо CounterID отрабатывает.
date,
countIf(arrayExists(x -> (x BETWEEN date - 13 and date), userDates)) as value
FROM (
SELECT groupUniqArray(EventDate) as userDates
FROM `hits_100m_obfuscated`
WHERE EventDate BETWEEN toDate('2013-06-25') - 13 and toDate('2013-08-15')
GROUP BY CounterID
) ARRAY JOIN
arrayMap(
x -> (toDate('2013-06-25') + x),
range(toUInt32(dateDiff('day', toDate('2013-06-25'), toDate('2013-08-15'))) + 1)
) as date
GROUP BY date;
AM
A
A
AM
A
A
M
M