Я довольно новичок в SQL и mySQL, я самоучка и пытаюсь написать запрос, который показывает мне все строки с числом 3 или меньше идентификатора, который совпадает в столбце ID.
Так, например:
Id timestamp Number
-- --------- ---
1 0001-12-01 1001
1 0001-12-02 3520
1 0001-12-01 1002
2 0001-12-02 2152
2 0001-12-01 1005
2 0001-12-02 1250
2 0001-12-01 1007
2 0001-12-02 1536
3 0001-12-01 1009
2 0001-12-02 1305
3 0001-12-01 1010
2 0001-12-02 1125
3 0001-12-01 1107
2 0001-12-02 1108
В идеале, результат будет выглядеть так:
Id timestamp Number
-- --------- ---
1 0001-12-01 1001
1 0001-12-01 1002
1 0001-12-02 3520
3 0001-12-01 1009
3 0001-12-01 1010
3 0001-12-01 1107
Это признает, что оба идентификатора "1" и идентификатор "3" имеют 3или меньше совпадающих / подсчитанных идентификаторов и отображает результаты по любому фильтру, который я установил.
Мне удалось написать запрос, который подсчитывает строки и показывает только те числа, которые равны 3 или меньше, но это группирует их по их идентификаторам и не отображает строки.Это выглядит примерно так:
select
concat(t1.id) as 'ID',
t1.timestamp as 'timestamp',
count(t1.id) as 'Number'
from
table1 t1
where -- Curly braces are Metabase variables
t1.timestamp between {{startdate}} and {{enddate}}
group by t1.id
having count(*) < 3
order by id
limit 1000
Я провел несколько поисков по SO и другим ресурсам, но потерял сознание и надеялся, что кто-нибудь сможет дать мне руку или толкнуть в правильном направлении.,Любая помощь приветствуется.