2017-03-20 26 views
0

我有這個架構 EER Diagram獲取計數的最大日[MYSQL]

我一定要找到客戶數,在他們最新帳戶(資本*)平衡(他們可能有多個帳戶) balance_value超過1.000.000比

*資本:balance_type =「資本」

我想我該查詢返回錯誤結果,它的效率低下

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 

我想我需要一些幫助:S

下載樣本數據(Data文件夾移動到C:/)和腳本來創建模式 https://drive.google.com/file/d/0BxVNamixm4W2SHVadndtWkNBajg/view?usp=sharing

+2

樣本數據和預期結果是必要的。 – Blank

回答

0

什麼是您的查詢結果?

你期待什麼樣的「正確」結果?

僅供參考,

組通過CUSTOMER_ID將使它的速度比明顯不

,如果你知道確切的資金的話,將能更好地使用功能相當於/ =,而不是LIKE(=比LIKE更快)

+0

結果只是在任何餘額行中具有超過1,000,000的資本餘額的客戶數量明顯不同。 正如你所看到的平衡表有balance_date,我需要找到在**最新**餘額(我猜測最大日期日期)有超過1.000.000的資本餘額的客戶數量。 我知道等於更快,但我有像「資本」(我不能更改數據)行,所以我必須使用Like。 謝謝! –