url_id, 
                  
                  
                      countIf(type = 'opened') AS percent
                  
                  
                  FROM hits
                  
                  
                  , 
                  
                  
                  (
                  
                  
                      SELECT 
                  
                  
                          domain_id, 
                  
                  
                          total_hits
                  
                  
                      FROM 
                  
                  
                      (
                  
                  
                          SELECT 
                  
                  
                              domain_id, 
                  
                  
                              countIf(type = 'opened') AS total_hits, 
                  
                  
                              uniq(url_id) AS urls
                  
                  
                          FROM hits
                  
                  
                          WHERE event_date = today()
                  
                  
                          GROUP BY domain_id
                  
                  
                          HAVING (urls > 1) AND (total_hits > 10000)
                  
                  
                      )
                  
                  
                  ) AS hit_stat
                  
                  
                  WHERE (hits.domain_id = hit_stat.domain_id) AND (hits.event_date = today())
                  
                  
                  GROUP BY 
                  
                  
                      hits.domain_id, 
                  
                  
                      hits.url_id
                  
                  
                  HAVING percent >= 0.9
                  
                  
                  
                  
                  
                   А почему в самом верхнем select недоступен hit_stat.total_hits ? Not found column  =(((
                  
                  
                
EXPLAIN SYNTAX SELECT ... попробуйте посмотрите как запрос переписывается если конечно версия clickhouse позволяет
А зачем вам промежуточный селект?
 Евгений
                          Король
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Евгений
                          Король
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  я сначала выбираю тотал_хит для доменов с хитами >10k, и количеством страниц пер домен, в верхних селект дожен отобрать такие домены, 90% хитов приходится на 1 страницу, там не дописано having percent >= 0,9 а в усовияъ выборки я хотел поделить количество хитов на страниу на тотал хитов и получить сколько процентов хитов по этой странице
Ну вы во 2ом запросе селектите то, что уже получили во внутреннем. Я считаю, что можно его выкинуть, тогда запрос станет проще, для кх в том числе.
 Евгений
                          Король
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Евгений
                          Король
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  во внутреннем я группирую по domain_id, во внешнем по domain_id, url_id
Я про средний, между ними
 Евгений
                          Король
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Евгений
                          Король
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  так там всего 2 селекта...
А вы его просто добавляете или под агрегатом?
тут надо переписать через inner join и переименовать поля в подзапросе select bbbb,cccc from xxx join (select bbbb as ccc, .... from yyy) on bbbb=cccc
 Евгений
                          Король
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Евгений
                          Король
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                   Евгений
                          Король
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Евгений
                          Король
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Я делал с иннер тоже самое. Чуть позже покажу как вышло окончательно
total_hits. попробуйте в ключ группировки его добавить в большом запросе.
Обсуждают сегодня