获取最大日期的计数[MYSQL]

获取最大日期的计数[MYSQL],mysql,sql,select,count,Mysql,Sql,Select,Count,我有这个模式 我必须找到在其最新的账户(资本*)余额(他们可能有多个账户)中,余额值超过1.000.000的客户数 *资本:余额 我猜我的查询返回了错误的结果,而且效率很低 SELECT COUNT(DISTINCT customer.customer_id) AS customers FROM balance INNER JOIN account ON balance.account_id = account.account_id INNER JOIN contract ON

我有这个模式

我必须找到在其最新的账户(资本*)余额(他们可能有多个账户)中,余额值超过1.000.000的客户数

*资本:余额

我猜我的查询返回了错误的结果,而且效率很低

SELECT COUNT(DISTINCT customer.customer_id) AS customers
    FROM balance INNER JOIN account ON balance.account_id = account.account_id
    INNER JOIN contract ON account.contract_id = contract.contract_id
    INNER JOIN customer ON customer.customer_id = contract.customer_id
    WHERE  balance.balance_type like '%Capital%' AND balance.balance_value > 1000000
    ORDER BY balance.balance_date DESC
我想我需要一些帮助

下载示例数据(将数据文件夹移动到C:/)和脚本以创建架构
您的查询结果是什么

你期望得到什么样的“正确”结果

仅供参考

按客户id分组将使其比distinct更快


如果您知道确切的大写字母,最好使用等于/=而不是LIKE(=比LIKE快)

样本数据,预期结果是Nessery。结果就是任何余额行中资本余额超过1.000.000的客户的明显数量。正如您可以看到的,余额表中有余额_日期,我需要找到在其最新余额(我猜是最长日期)中资本余额超过1.000.000的客户的明显数量。我知道equal更快,但是我有像“Capital”这样的行(我不能更改数据),所以我必须使用like。非常感谢。