簡體   English   中英

如何使用SQL查詢計算拼寫錯誤的字段?

[英]How do you count misspelled fields using a SQL query?

我有一個要查詢的SQL數據庫,它是項目的一部分-我對此只有讀取權限。

有一個名為ResultStatus的列-可能的值為“ Passed”和“ Failed”。 但是,原始數據輸入者有一些錯別字,因此其中一些人也說“已完成”。 我想計算“失敗”條目的數量,但是我也想包括“已完成”條目。

SELECT 
        ResultStatus, Count(*)
        FROM 
            [DB_018].[dbo].[ProjectData]

        GROUP BY ResultStatus

顯然將“ Fialed”分組在另一個類別中。 我希望將其與“失敗”一起計算在內。

您可以自己更正拼寫

SELECT Case When ResultStatus = 'Fialed' then 'Failed' Else ResultStatus End AS ResultStatus, Count(*)
FROM  [DB_018].[dbo].[ProjectData]
GROUP BY Case When ResultStatus = 'Fialed' then 'Failed' Else ResultStatus End

這是在對數據進行分組時用正確的拼寫替換錯誤的拼寫。

請注意,使用CTE可以這樣做,而且可能更清潔

with CleanedResults as (
  select
    case 
      when ResultStatus = 'Fialed' then 'Failed' 
      when ResultStatus = 'Pased' then 'Passed' 
      else ResultStatus
    end as ResultStatus
  from [DB_018].[dbo].[ProjectData]
) select
  ResultStatus
, count(*) as NumResults
from CleanedResults
group by ResultStatus

我會用:

SELECT 
        case when left(ResultStatus,1) = 'P' then 'Pass' 
        when left(ResultStatus,1) = 'a' then 'audit'
        else 'fail' end as result, Count(*)
        FROM 
            ProjectData
        GROUP BY left(ResultStatus,1)

因為COUNT不會真正計算NULL值,所以您可以使用CASE語句,只需編寫如下:

SELECT  COUNT(CASE WHEN ResultStatus = 'Fialed' THEN 1
          END) as MissSpelledFailed,
    COUNT(CASE WHEN ResultStatus = 'Pased' THEN 1
          END) as MisSpelledPassed,
    COUNT(CASE WHEN ResultStatus = 'Failed' THEN 1
          END) as CorrectSpelledFailed,
    COUNT(CASE WHEN ResultStatus = 'Passed' THEN 1
          END) as CorrectSpelledPassed,
    FROM    [DB_018].[dbo].[ProjectData]

您需要獲取ResultStatus的不同列表,並將它們全部添加到下面的case語句中。 我不需要Raj的方法,因為您不需要使用CTE(並非在所有版本的SQL Server中都可用)或調整分組依據。

SELECT
    ResultStatus,count(*) [Count]
FROM(
    SELECT 
        CASE
            WHEN ResultStatus = 'FIAL' THEN 'FAIL'
            WHEN ResultStatus = 'FAIL' THEN 'FAIL'
            WHEN ResultStatus = 'Passed' THEN 'Passed'
        END [ResultStatus]
    FROM [DB_018].[dbo].[ProjectData]
)a
GROUP BY ResultStatus

暫無
暫無

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

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