0

我是 ES 新手,我需要进行查询

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

我什至没有地方可以开始。像 GROUP BY AND HAVING 这样引用这个SQL 并没有多大帮助。

数据示例

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

预期回报

----
val1 
----
4

4 回答 4

3

由于您是 Elasticsearch 的新手,并且还在研究 SQL,我建议您看看Elasticsearch-SQL。文档在这里

关于您的特定查询,您可以尝试translateAPI,它将为您提供 Elasticsearch 查询,它将针对给定的 SQL 查询运行。这可能是您最终 Elasticsearch 查询的一个很好的起点。或者,您可以将 ES-SQL 与_sql端点一起使用来发送 SQL 查询并取回结果。

于 2019-09-04T04:44:36.690 回答
2

你应该断言COUNT(value)COUNT(*)在这里:

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

断言的问题COUNT(DISTINCT value) > 1是这个条件永远不会成立。永远不会成立的原因是,GROUP BY完成后,每个组将由一个且只有一个组成Value

于 2019-09-04T03:09:51.413 回答
0

尝试这个。

 Select value 
    from table 
    group by value 
    having count(distinct value) > 1
于 2019-09-04T03:04:32.183 回答
0

尝试这个

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

检查此链接

于 2019-09-04T03:38:04.560 回答