Считать только уникальные термины, основанные на внутренней SELECT JOIN - PullRequest
0 голосов
/ 02 сентября 2011

Я пытаюсь считать только уникальные термины в качестве ИТОГО.

Это оригинальный запрос, и он отлично работает

->select('DISTINCT search_tags.term AS t_name, nbr', FALSE)        
    ->from('search_tags LEFT JOIN (SELECT term AS tk, COUNT(search_tags.term) AS nbr FROM search_tags GROUP BY search_tags.term) AS TR ON search_tags.term = TR.tk ')
    ->where('search_tags.dt_added >=', '2011-08-01 09:48:54') 
    ->where('search_tags.dt_added <=', '2011-09-02 09:48:54');

// returns: [twitter,12],[facebook,6].....

Дело в том, что этот код запускает датируемый(datatable.net), поэтому таблица данных удаляет строку выбора и изменяет ее на:

SELECT COUNT(*) AS numrows
FROM (search_tags LEFT JOIN (SELECT term AS tk, COUNT(search_tags.term) AS nbr FROM search_tags     GROUP BY search_tags.term) AS TR ON search_tags.term = TR.tk)
WHERE `search_tags`.`dt_added` >= '2011-08-01 09:48:54'
AND `search_tags`.`dt_added` <= '2011-09-02 09:48:54'

// returns the same  [twitter,12],[facebook,6]..... BUT the pagination is broken.

Таким образом, таблица данных может считать строки и использовать их в качестве параметра пагинации.

Но когдаудаляет select, он получает все строки, так как DISTINCT больше не существует.

Я лишен сна, так что я застрял на пробах и ошибках навсегда.Пожалуйста, помогите LOL: P

1 Ответ

0 голосов
/ 06 сентября 2011

Сортировка

->select('DISTINCT st5.term AS t_name, n_ocurrences', FALSE)        
    ->from("search_tags AS st4 
    RIGHT OUTER JOIN (SELECT DISTINCT st.term, n_ocurrences  
    FROM search_tags AS st 
    JOIN 
    (SELECT term AS n_term, COUNT(term) AS n_ocurrences 
    FROM search_tags AS st2 
    GROUP BY st2.term)
    AS st3 ON st3.n_term = st.term  
    WHERE st.dt_added >= '$min' 
    AND st.dt_added <= '$max')  AS st5 ON st5.term = 1");  

Пришлось добавить несколько начальных выборов, чтобы получить нужную сумму.Теперь мне нужно посчитать УНИКАЛЬНЫЕ n_ocurferences под $ min, $ max, поскольку n_ocurrence возвращает только общее количество.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...