sql - 用于查找 count > 2 的所有单个记录的 SQL 查询
问题描述
所以我找不到任何解决方案。我见过许多 ORDER BY 和 HAVING 解决方案,它们很接近,但不能完全提供我正在寻找的东西。
我有这个:
SELECT *
FROM t1
WHERE t1.placed > '2020-12-01' AND t1.placed < '2020-12-02'
GROUP BY t1.account
HAVING count(t1.account) > 2;
现在这正好反映了我想看到的行,但我不希望它们组合在一起。我希望数据库给我所有单独的行。现在我尝试删除 GROUP BY,但这不起作用。那么如何获得与上述相同的信息,但显示为单独的行而不是分组?
解决方案
也许使用子查询(用于连接)您可以轻松解决它
select a.*
from table a
inner join (
select itemID, Count(*)
from table
where placed > '2020-12-01' and placed < '2020-12-02'
group by itemID
having Count(*) > 2
) b on a.ItemID = b.itemID
推荐阅读
- python - 如何将 Tkinter 窗口变成带有任务栏和桌面快捷方式的“专业”应用程序
- python - 遍历和处理两个列表并从中创建新列表的规范 Python 方法是什么?
- c# - 当光标在winform中的图标上时如何使密码文本框值可见
- featuretools - 如何更具体地计算特征工具中的特征矩阵以避免长时间运行?
- android - Imagebutton 在 Oncreate 中不可见且不可点击
- bash - 将命名参数传递给 shell 中的程序
- ios - 视图消失后如何获取当前正在运行的 AVPlayer 实例?
- swift - 为什么我不能将 JSON 响应分配给变量以供以后使用?
- c++ - 服务器和客户端都运行在 PC 上。客户端可以使用PC的IP连接到服务器吗?
- sass - Zurb Foundation 断点更改未生效