mysql - 如何在 ID 级别上动态设置 WHERE 子句限制
问题描述
我想创建一个 WHERE 子句,其中限制是动态的,具体取决于我要查找的 ID 和日期,以计算一个表中 ID 级别的行数并将其带入另一个表:
表 A 看起来像这样,有几个 ID:
ID - Create date
12221 - 12/12/2018
13331 - 12/10/2018
表 B 有以下信息和几个 ID
ID - Date
12221 - 10/10/2018
12221 - 07/06/2017
13331 - 01/20/2019
我现在想对表 2 中所有在每个 ID 的实际注册日期之前有日期的行进行计数。所以在上面的例子中它应该说:
ID - Count
12221 - 2
13331 - 0
不确定如何使用 WHERE 子句在 SQL 中执行此操作。我可能会在表 B 中将“创建日期”作为新列引入并对此进行解决(例如,如果日期小于创建日期,则为 1,如果日期大于创建日期,则为 0),然后将其放入 WHERE 子句,但由于我有大量数据,这不是理想的解决方案。
谢谢!
解决方案
在日期条件下加入表格和分组:
select b.id, sum(a.createdate is not null) count
from tableb b left join tablea a
on a.id = b.id and b.date < a.createdate
group by b.id
请参阅演示。
结果:
| id | count |
| ----- | ----- |
| 12221 | 2 |
| 13331 | 0 |
推荐阅读
- python - Pandas:如何将具有重复索引值的数据框转换为字典
- python -
.capitalize VS。str.大写( ) - python - 检查是否设置了环境变量及其值
- python - 用python写了一个非常简单的猜词游戏,每次猜错时都会给出提示,但它不起作用
- r - 按两个标准填充 ggplot2 直方图
- sed - 在两个不同的行中打印行的文本
- r - 根据 R 中最近的时间戳和条件从另一个数据帧中提取数据
- python - 一个令人困惑的问题:如何将包含空格的字符串参数从 node.js 传递给 python
- python - Python 中列表的可变性不一致。这种不一致有什么特别的原因吗?请解释
- python - 按钮中的命令在不显示按钮小部件的情况下执行。(Python tkinter)