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 
----

4 ответа

Поскольку вы новичок в Elasticsearch и, кроме того, изучаете SQL, я бы посоветовал взглянуть на Elasticsearch-SQL. Документация здесь.

Что касается вашего конкретного запроса, вы можете попробовать translateAPI, который предоставит вам запрос Elasticsearch, который он будет запускать для данного запроса SQL. Это может стать отличной отправной точкой для вашего последнего запроса Elasticsearch. Или вы можете использовать ES-SQL как есть с_sql конечная точка для отправки SQL-запросов и получения результатов.

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

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

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

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

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

Попробуй это

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

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

Другие вопросы по тегам