SQL как пример GROUP BY AND HAVING

Я новичок в ES, и мне нужно сделать запрос

Select value 
from table 
group by value 
having count(distinct(id)) > 1

У меня даже нет области, чтобы начать. ссылка на этот SQL, такой как GROUP BY AND HAVING, не очень помогла.

Пример данных

------------
Value | id |
------------
val1  | 2  |
val2  | 2  |
val3  | 2  |
val1  | 3  |
------------

Ожидаемая доходность

----
val1 
----

person aceminer    schedule 04.09.2019    source источник
comment
groupby должно быть сгруппировано по   -  person Ed Bangga    schedule 04.09.2019
comment
Не имеет смысла группировать по value, а также утверждать его количество различных в предложении HAVING. Пожалуйста, добавьте пример данных входной таблицы вместе с ожидаемым результатом.   -  person Tim Biegeleisen    schedule 04.09.2019
comment
@TimBiegeleisen Я понял, что это ошибка в моем вопросе оператора SQL. Я исправил это и опубликовал примеры данных   -  person aceminer    schedule 04.09.2019


Ответы (4)



Вы должны утверждать COUNT(value) или COUNT(*) здесь:

SELECT value
FROM yourTable
GROUP BY value
HAVING COUNT(*) > 1;

Проблема с утверждением COUNT(DISTINCT value) > 1 заключается в том, что это условие никогда не будет истинным. Причина, по которой это никогда не будет правдой, заключается в том, что после завершения GROUP BY каждая группа будет состоять из одного и только одного Value.

person Tim Biegeleisen    schedule 04.09.2019
comment
Мне нужно, чтобы это были уникальные подсчеты. И мне нужно перевести это в запрос ES. Я изменил свой вопрос. в моем предыдущем вопросе была ошибка. я рассчитываю на другое поле - person aceminer; 04.09.2019

попробуй это.

 Select value 
    from table 
    group by value 
    having count(distinct value) > 1
person Ed Bangga    schedule 04.09.2019

попробуй это

SELECT value
FROM table
GROUP BY value
HAVING COUNT(*) > 1;

Проверьте эту ссылку

person Nandu    schedule 04.09.2019