【问题标题】:SQL like GROUP BY AND HAVING exampleSQL 类似于 GROUP BY AND HAVING 示例
【发布时间】:2019-09-04 12:44:36
【问题描述】:

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

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

我什至没有开始的领域。引用这个SQL like GROUP BY AND HAVING 并没有多大帮助。

数据示例

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

预期回报

----
val1 
----

【问题讨论】:

  • groupby 应该是“group by”
  • value 分组并在HAVING 子句中声明其不同计数是没有意义的。请添加示例输入表数据以及您期望的输出。
  • @TimBiegeleisen 我意识到这是我的 sql 语句问题中的一个错误。我已经对其进行了纠正并发布了示例数据

标签: elasticsearch elasticsearch-sql


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 我需要它是唯一的计数。我需要把它翻译成一个 ES 查询。我修改了我的问题。我之前的问题中有一个错误。我指望另一个领域
    【解决方案3】:

    试试这个。

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

    【讨论】:

      【解决方案4】:

      试试这个

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

      Check this link

      【讨论】:

        猜你喜欢
        • 2018-04-05
        • 1970-01-01
        • 1970-01-01
        • 2021-12-31
        • 2018-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多