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. Документация здесь.
Что касается вашего конкретного запроса, вы можете попробовать translate
API, который предоставит вам запрос 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