mysql - 获取在 2 个日期之间使用他们的卡 N 次的用户
问题描述
我想获得在两个日期之间使用他们的卡(pas)N 次的用户(Gebruiker)。
现在我尝试使用它HAVING COUNT
或它的一些变体来获取一行包含外键的次数,并使用它来过滤掉在 2 个日期之间使用它至少 5 次的每个人。
这是我尝试过的,但没有日期:
SELECT *, COUNT(Pas_pasnummer)
FROM gebruiker
INNER JOIN pas_has_poort ON gebruiker.gebruikernummer=pas_has_poort.Pas_pasnummer
HAVING COUNT(Pas_pasnummer) = '1'
解决方案
gebruiker.gebruikernummer
不是外键来的pas_has_poort.Pas_pasnummer
。您需要通过链接表pas
。
您需要按 对查询进行分组gebruikernummer
。
然后,您可以在 中对日期设置条件pas_has_poort
。
SELECT g.*, COUNT(*) AS use_count
FROM gebruiker AS g
JOIN pas AS p ON g.gebruikernummer = p.gebruikergebruikernummer
JOIN pas_has_poort AS pp ON p.pasnummer = pp.Pas_pasnummer
WHERE pp.inchecktijd BETWEEN @start_date AND @end_date
GROUP BY g.gebruikernummer
HAVING use_count >= 5
推荐阅读
- python-3.x - 在将 Pandas 数据帧插入 BigQuery 表时处理 NaN 值
- r - 根据它们在我的数据集属性中出现的次数来分解所有列
- html - CSS文本尊重边框半径
- javascript - Highstock 不显示股票图表
- odata - 从一个 odata web api 端点中返回由两个不同数据库形成的实体
- encryption - 为什么 JWT Token 包含用于加密/签名的算法
- scala - Spark Scala groupBy 和合并
- android - 在 react-native 中打开 webview 时出现 ClassNotFoundException
- angular - 如何在 Angular 6 中实现表格分页器
- matlab - 如何从图中获取 GIF