100 万を超えるレコードがあり、データベースから列の数が 10 以上のすべての情報を選択する必要があります。
私は、group by を使用する必要があることと、演算子で集約関数を使用できない場所を使用することを知っているので、疑似コードで必要なのは
Select column1,column2,column3
From MYdatabase
Where count(column1) > 10
これは私が立ち往生するところです。サブクエリを使用して、count という列を追加しますか? 私は初心者の SQL ユーザーなので、完全に間違った方向に進んでいる可能性があります。
私のクエリ全体は以下のとおりです。変更したい場合は、count(callid) >=10 のレコードのみが選択されます。
Select
FiscalMonthYear,
'MyCenter' = Case EP.Center
When 'Livermore Call Center' Then 'LCC'
When 'Natomas Call Center' Then 'NCC'
When 'Concord Call Center' Then 'CCC'
When 'Virtual Call Center' Then 'VCC'
When 'Morgan Hill Call Center' Then 'MHCC'
Else Center
End,
ECH.segstart,
ECH.consulttime,
EP.Queue,
(EP.MgrFName +' '+ EP.MgrLName)AS Manager,
(EP.SupFName +' '+ EP.SupLName)AS Supervisor,
(EP.RepFName +' '+ EP.RepLName)As Agent,
EP.RepPERNR,
LEFT(ECH.segstart, 19) as SegmentDateTime,
ECH.origlogin,
ECH.dialed_num,
ECH.segment,
ECH.SegStart_Date,
ECH.callid
FROM CMS_ECH.dbo.CaliforniaECH ECH
INNER JOIN CAPLESQL02.InfoQuest.dbo.IQ_Employee_Avaya_Id A ON ECH.origlogin = A.AvayaID
AND getdate () BETWEEN StartDate AND EndDate
INNER JOIN CAPLESQL02.InfoQuest.dbo.IQ_Employee_Profiles_v3 EP ON A.IQID = EP.RepID
AND getdate () BETWEEN RepToSup_StartDate and RepToSup_EndDate
AND getdate () BETWEEN SupToMgr_StartDate and SupToMgr_EndDate
AND getdate () BETWEEN RepQueue_StartDate and RepQueue_EndDate
INNER JOIN Cal_RemReporting.dbo.udFiscalMonthTable f on ECH.SegStart_Date = f.Tdate
Where dialed_num not like '______'
AND dialed_num not like ''
AND dialed_num not like '_______'
and EP.Center is NOT Null
and EP.Center not like 'Comm Ops'
and EP.Center not like 'Same Day Group'
and MgrLName not like 'Hollman'
and consulttime > 0
and ECH.SegStart_Date between getdate()-90 and getdate()-1
and EP.Queue not IN ('BST','Collections', 'DST','DSR','Escalations','Cable Store')
トップ 10 を選択し、dialed_num 列のすべてのデータを結合する内部結合クエリを使用して、問題を自分で解決しました。完璧に動作します。ご協力いただきありがとうございます。