2
accounts table
----------------
id name
10 ABC Company
11 XYZ Company
12 LMN Company
13 EFG Company
14 JKL Company
.. ...........
.. ...........
accounts_opportunities table
-----------------------
id opportunity_id account_id deleted
1 1 11 0
2 2 11 0
3 3 12 0
4 4 12 0
5 5 13 0
6 6 14 0
. . .. .
. . .. .
opportunities table
-----------------
id name amount
1 Opp 1 100
2 Opp 2 50
3 Opp 3 500
4 Opp 4 600
5 Opp 5 200
6 Opp 6 1000
上記の表の上位20個のアカウントを選択しようとしています。そして、私は2つの列を使用してSQLクエリを注文する方法は?
SELECT TOP 20 COUNT(*) as number_of_opportunities,
(
SELECT accounts.name
FROM accounts
WHERE accounts.id=accounts_opportunities.account_id
) as account_name
FROM accounts_opportunities
JOIN opportunities ON opportunities.id = accounts_opportunities.opportunity_id
WHERE accounts_opportunities.deleted != '1'
GROUP BY accounts_opportunities.account_id
ORDER BY number_of_opportunities DESC
とクエリ上記の出力以下与え、 に対して次のクエリを書かれました。
Account name Number of Opportunities
------------ -----------------------
ABC Company 3
XYZ Company 2
LMN Company 2
EFG Company 1
JKL Company 1
XYZとLMNは、同じ番号の機会を持っているが、私はXYZの機会のはLMN総量未満の総量を算出した場合。また、JKLはEFGよりもの額が高い。
私の質問は、number_of_opportunitiesと総機会量からこのクエリを注文する方法です。誰かが私にガイド..
予想される出力
Account name Number of Opportunities
------------ -----------------------
ABC Company 3
LMN Company 2
EFG Company 1
JKL Company 1
XYZ Company 2
私はクエリをチェックしましたが、SUMは機能しません – user3099298
@ user3099298提供されたサンプルデータを使ってクエリをテストしましたが正常に動作します。問題を再現できるようにデータを追加できますか? –