我是ES的新手,我需要进行查询
nuget.exe can't find the needed assembly by one specific path
我什至没有起点。引用此SQL like GROUP BY AND HAVING并没有太大帮助。
数据示例
Select value
from table
group by value
having count(distinct(id)) > 1
期望的回报
------------
Value | id |
------------
val1 | 2 |
val2 | 2 |
val3 | 2 |
val1 | 3 |
------------
答案 0 :(得分:3)
由于您是Elasticsearch的新手,并且还研究SQL,因此建议您看看Elasticsearch-SQL。文档为here。
关于您的特定查询,您可以尝试使用translate
API,它将为您提供针对特定SQL查询运行的Elasticsearch查询。对于最终的Elasticsearch查询,这可能是一个很好的起点。或者,您可以将ES-SQL与_sql
端点一起使用,以发送SQL查询并获取结果。
答案 1 :(得分:1)
您应该在此处声明COUNT(value)
或COUNT(*)
:
SELECT value
FROM yourTable
GROUP BY value
HAVING COUNT(*) > 1;
断言COUNT(DISTINCT value) > 1
的问题是这种情况永远不会成立。之所以永远不成立,是因为GROUP BY
完成后,每个组将由一个且只有一个Value
组成。
答案 2 :(得分:0)
尝试一下。
Select value
from table
group by value
having count(distinct value) > 1
答案 3 :(得分:0)
尝试
const users = [
{
'first_name': 'Homer',
'last_name' : 'Simpson',
'dob': '03/19/195-',
'married': true,
},
{
'first_name': 'Marge',
'last_name': 'Simpson',
'dob': '05/12/56',
'married': true,
},
{
'first_name': 'Lisa',
'last_name': 'Simpson',
'dob': '04/19/87',
'married': false,
},
]
for (i in users) {
if (users[i]['married'] == true)
console.log(users[i]['first_name'])
}