【问题标题】:How to create MySQL nested query with DISTINCT and COUNT如何使用 DISTINCT 和 COUNT 创建 MySQL 嵌套查询
【发布时间】:2020-06-26 00:29:58
【问题描述】:

我这里有一个带有一些数据的 mySQL 表。

在寻求帮助之前,我曾尝试过MySQL Nested Select Query?,但它对我不起作用。

所以,我想做的是列出具有更多 doc_id 的 dir_id 的总数。结果,该表应该只有两列。 dir_id 和总数。在这种情况下,表结果应该有第一行的dir_id = 3,total = 3。换句话说,dir_id 3,有3个doc_id。

我尝试使用 DISTINCT 和 COUNT 来构造嵌套查询,如下所示:

SELECT COUNT(*), AS total `dir_id` 
FROM
    (SELECT DISTINCT dir_id, doc_id 
    FROM `dir_subdir` 
    ORDER BY `dir_subdir`.`dir_id` DESC)

这是运行查询后的message error I got。不幸的是,这对我来说不是很清楚,所以我无法修复它。

任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 您遇到错误了吗?如果您这样做了,您应该分享错误的确切文本(提示:如果您显示的查询被准确转录,您确实收到了错误)。
  • 我将 MySQL 消息错误作为更新发布。

标签: mysql


【解决方案1】:

你错过了GROUP BY dir_id。您的逗号也放错了位置。

您可以在没有子查询的情况下使用COUNT(DISTINCT column) 来做到这一点

SELECT dir_id, COUNT(DISTINCT doc_id) AS total
FROM dir_subdir
GROUP BY dir_id
ORDER BY dir_id DESC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多