私の最初のテーブルdbo.Port
マイ秒台dbo.Security
私はモーダル国を取得することができ、個々の証券SELECTモード/モーダル値SQL
Portfolio Security Yield Duration Coupon Country Sector MarketValue
Port1 Sec1 0.35 0.50 2.25 US CORP 386.17
Port1 Sec2 0.16 0.23 1.75 UK CORP 224.64
Port1 Sec3 0.98 1.96 3.00 US CORP 148.00
Port1 Sec4 0.78 1.40 0.00 DE SOV 980.07
Port2 Sec1 0.35 0.50 2.25 US CORP 386.17
Port2 Sec3 0.98 1.96 3.00 US CORP 148.00
Port3 Sec1 0.35 0.50 2.25 US CORP 386.17
Port3 Sec4 0.78 1.40 0.00 DE SOV 980.07
Port3 Sec5 0.03 0.06 0.00 DE SOV 952.36
各ポートフォリオについての詳細が含まれてい
Portfolio Yield Duration Coupon
Port1 0.62 1.10 0.98
Port2 0.52 0.91 2.46
Port3 0.40 0.70 0.37
各ポートフォリオに関する集約の詳細が含まれていますポートフォリオ1については、以下の個別クエリを使用します。私は私のクエリが返すようにしたいどのようなUS
SELECT x.Country
FROM (
SELECT TOP 1 COUNT(dbo.Security.Country) as Count ,dbo.Security.Country
FROM dbo.Port
INNER JOIN dbo.Security ON (dbo.Port.Portfolio = dbo.Security.Portfolio)
WHERE dbo.Port.Portfolio = 'Port1'
GROUP BY dbo.Security.Country
ORDER BY Count DESC
) x
これは、各ポートフォリオの国や部門のモーダル値を選択入社クエリを返すことです。誰もが、私は、各ポートフォリオのためMODE(dbo.Security.Country)
などを取得できるように、私は以下の表
Portfolio Yield Duration Coupon Market Value Country Sector
Port1 0.62 1.10 0.98 1738.88 US CORP
Port2 0.52 0.91 2.46 534.17 US CORP
Port3 0.40 0.70 0.37 2318.60 DE SOV
理想のSQLで終わるようにするために、最初のクエリまたは任意の他の方法には、このクエリを組み込む方法を知ってい
SELECT
dbo.Port.Portfolio
,dbo.Port.Yield
,dbo.Port.Duration
,dbo.Port.Coupon
,SUM(dbo.Security.MarketValue)
--Not working
,MODE(dbo.Security.Country)
,MODE(dbo.Security.Sector)
--Not working
FROM dbo.Port
INNER JOIN dbo.Security ON (dbo.Port.Portfolio = dbo.Security.Portfolio)
GROUP BY
dbo.Port.Portfolio
,dbo.Port.Yield
,dbo.Port.Duration
,dbo.Port.Coupon
'モード 'を統計的な概念のように。最も頻繁に発生する値https://en.wikipedia.org/wiki/Mode_(statistics) – TylerDurden