mysql - 我在 SQL 中一周大。我不明白这个错误,“第 1 行的错误 1054 (42S22):‘字段列表’中的未知列‘S.hacker_id’”
问题描述
SELECT submission_date, COUNT(hacker_id)
FROM (SELECT S.submission_date, COUNT(DISTINCT S.hacker_id) FROM Submissions S
GROUP BY S.submission_date) TMP
HAVING COUNT(*) > 14;
谁能解释导致错误的原因。对不起这个琐碎的问题。数据集有 15 个日期。每天,黑客都会提交多项挑战。我想查询每天提交至少 1 个查询的唯一黑客。我的方法是......使用子查询,我将在一天内消除重复项。然后主查询将给我在所有 15 天出现的hacker_id。
解决方案
这是您的查询:
SELECT submission_date, COUNT(hacker_id)
FROM (SELECT S.submission_date, COUNT(DISTINCT S.hacker_id)
FROM Submissions S
GROUP BY S.submission_date
) TMP
HAVING COUNT(*) > 14;
查询有几个问题:
COUNT(DISTINCT S.hacker_id)
在子查询中,但您尚未为其分配名称。- 外部查询有一个聚合函数
COUNT()
,但没有GROUP BY
。 - 外部查询 has
HAVING
,通常用于在 a 之后进行过滤GROUP BY
。但没有 aGROUP BY
它没有意义。
目前尚不清楚您要做什么,因此我无法就如何解决这些问题提出建议。嗯,除了第一个。
如果你想要超过 14 个不同的黑客 ID 的日期,你可以使用:
SELECT S.submission_date, COUNT(DISTINCT S.hacker_id) as num_hacker_ids
FROM Submissions S
GROUP BY S.submission_date
HAVING num_hacker_ids > 14;
推荐阅读
- vba - 如何将例外列表添加到字符串搜索?
- facebook - 我可以使用 API 向我的客户 Facebook 关注者发送直接消息吗?
- ruby-on-rails - 无法将字符串注入 Trix 编辑器
- c - 为什么对象的句柄经常显示为指针指针
- javascript - React 链接更新 URL 但页面没有更改/呈现
- php - 在子主题中使用作曲家
- python - 管道中的 Sklearn_pandas 返回 TypeError: 'builtin_function_or_method' object is not iterable
- javascript - 通过在谷歌地图上拖放标记获取用户地址
- visual-studio - Visual Studio 2017 中使用虚拟机的共享工作区 (TFS)
- java - Maven编译中不存在包