2017-09-26 23 views
-3

我有以下的SQL查詢,需要知道companyidcount,因爲我可以看到重複的數據。我如何找到它的數量。以下是查詢查找計數

SELECT a.companyId 'companyId' 
      , i.orgDebtType 'orgDebtType' 
     , d.ratingTypeName 'ratingTypeName' 
     , c.currentRatingSymbol 'currentRatingSymbol' 
      , c.ratingStatusIndicator 'ratingStatusIndicator' 
     , g.qualifierValue 'qualifierValue' 
     , c.ratingdate 'ratingDate' 
     , h.value 'outlook' 
    FROM ciqRatingEntity a 
     JOIN ciqcompany com 
      on com.companyId = a.companyId 
     JOIN ciqratingobjectdetail b ON a.entitySymbolValue = b.objectSymbolValue 
     JOIN ciqRatingData c ON b.ratingObjectKey = c.ratingObjectKey 
     JOIN ciqRatingType d ON b.ratingTypeId = d.ratingTypeId 
      JOIN ciqRatingOrgDebtType i ON i.orgDebtTypeId=b.orgDebtTypeId 
      JOIN ciqRatingEntityData red ON red.entitySymbolValue=a.entitySymbolValue 
        AND red.ratingDataItemId='1' ---CoName 
     LEFT JOIN ciqRatingDataToQualifier f ON f.ratingDataId = c.ratingDataId 
     LEFT JOIN ciqRatingQualifiervalueType g ON g.qualifiervalueid = f.qualifierValueId 
     LEFT JOIN ciqRatingValueType h ON h.ratingValueId = c.outlookValueId 

    WHERE 1=1 
     AND b.ratingTypeId IN ('130', '131', '126', '254') 
--  and a.companyId = @companyId 
     AND a.companyId IN 
     (SELECT distinct TOP 2000000 
     c.companyId 
     FROM ciqCompany c 
      inner join ciqCompanyStatusType cst on cst.companystatustypeid = c.companystatustypeid 
      inner join ciqCompanyType ct on ct.companyTypeId = c.companyTypeId 
      inner join refReportingTemplateType rep on rep.templateTypeId = c.reportingtemplateTypeId 
      inner join refCountryGeo rcg on c.countryId = rcg.countryId 
      inner join refState rs on rs.stateId = c.stateId 
      inner join ciqSimpleIndustry sc on sc.simpleIndustryId = c.simpleIndustryId 
      ORDER BY companyid desc) 
    ORDER BY companyId DESC, c.ratingdate, b.ratingTypeId, c.ratingStatusIndicator 
+0

只是運行你的子查詢,它選擇你的'DISTINCT companyId' – RealCheeseLord

+1

'COUNT(DISTINCT companyId)'? – Prisoner

+2

在發佈如此龐大的查詢之前,請閱讀https://stackoverflow.com/help/mcve。 – jarlh

回答

0

這會列出有重複companyID的

SELECT companyId, count(*) as Recs 
FROM ciqCompany 
GROUP BY ciqCompany 
HAVING count(*) > 1 
0

我明白,你想一列添加到查詢每個companyId的數量,你可以使用COUNT() OVER()

select count(a.companyId) over (partition by a.companyId) as companyCount, 
    <rest of the columns> 
from ciqRatingEntity a 
join <rest of the query> 

這將每行中返回該行的companyId的計數不進行分組的結果。