簡體   English   中英

計算SQL Server中的特定單元格

[英]Counting specific cells in SQL Server

我有一張這樣的桌子:

表格檢視

RP Type列指定費率計划的類型,可以是(低,高,正常)

我想創建一個視圖,在其中可以看到每個訂戶的數量,可以是高,正常,低。

我猜應該是這樣的:

Create view t as 
   select 
       SubID, 
       Count(something) as NumeOfHIGH, 
       Count(Something) as NumOfLOW,
       Count(Something) as NumOfNormal
   Group by SubID

我可能是錯的..謝謝

您可以通過以下方式構成查詢:

SELECT SubID,
    SUM (
        CASE 
            WHEN RP_Type='High' THEN 1 
            ELSE 0 END
    ) AS NumOfHigh,
    SUM (
        CASE 
            WHEN RP_Type='Low' THEN 1 
            ELSE 0 END
    ) AS NumOfLow,
    SUM (
        CASE 
            WHEN RP_Type='Normal' THEN 1 
            ELSE 0 END
    ) AS NumOfNormal
FROM 
    <table_name>
Group by SubID

如果“高”,“低”和“普通”類別中的每個類別都有多個RP_Type ,則可以在各個類別中包含“ WHEN ”。

有關更多信息和參考: 使用CASE的條件處理

我嘗試了這個:

            select  SubscriberID
           ,COUNT(*) AS NumOfPlans
           ,SUM([SP active days]) as ActiveDays
           ,SUM(Case when [RP Type]='low' then 1 else 0 end ) as #LowPlan 
           ,SUM(Case when [RP Type]='high' then 1 else 0 end ) as #NormalPlan
           ,SUM(Case when [RP Type]='high' then 1 else 0 end ) as #HighPlan
           ,SUM(Case when [RP Type]='promotion' then 1 else 0 end ) as #PromotionsPlan
           ,SUM(Case when [RP Type]='portal' then 1 else 0 end ) as #PortablePlan
           ,SUM(Case when [RP Type]='newyear' then 1 else 0 end ) as #NewYearPlan
           ,SUM(Case when [RP Type]='hamaval1' then 1 else 0 end ) as #HamrahAval1Plan
           ,SUM(Case when [RP Type]='hamaval2' then 1 else 0 end ) as #HamrahAval2Plan
           ,SUM(Case when [RP Type]='samsung' then 1 else 0 end ) as #SamsungPlan
           ,SUM(Case when [RP Type]='DEMO' then 1 else 0 end ) as #DemoPlan
           ,SUM(Case when [RP Type]IS null then 1 else 0 end ) as #NuLL
           ,SUM([Extra Quota]) as SumGIG
           from [Cus Consumption].[dbo].CustData
           where [Expiry Date]<= '2014 - 01 - 15'
           group by [SubscriberID] 

具有諷刺意味的是,我沒有返回正確的答案..我不知道為什么@Rohit Aggrawal

這有幫助嗎?

   Create view t as 
       select From [tableName]
           [Rp Type],count(*) as NumberOfSubscribers
       Group by [Rp Type]

這樣可以為您提供每種類型的訂戶數,以及

希望對您有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM