簡體   English   中英

計算 SQL 中多列中的不同值對

[英]Count distinct value pairs in multiple columns in SQL

什么查詢會計算行數,但由三個參數區分?

例子:

Id      Name        Address 
==============================
1     MyName        MyAddress
2     MySecondName  Address2

就像是:

select count(distinct id,name,address) from mytable

要計算idnameaddress的唯一組合的數量:

SELECT Count(*)
FROM   (
        SELECT DISTINCT
               id
             , name
             , address
        FROM   your_table
       ) As distinctified

獲取所有不同的idnameaddress列並計算結果行。

SELECT COUNT(*) FROM mytable GROUP BY id, name, address

我剛剛想出的另一種(可能不是生產就緒或推薦的)方法是將值連接到一個字符串並特別地計算這個字符串:

SELECT count(DISTINCT concat(id, name, address)) FROM mytable;

您還可以執行以下操作:

SELECT COUNT(DISTINCT id + name + address) FROM mytable

必須返回唯一的物料清單 (BOM) 的計數,其中每個 BOM 都有多個位置,我添加如下內容:

select t_item, t_pono, count(distinct ltrim(rtrim(t_item)) + cast(t_pono as varchar(3))) as [BOM Pono Count]
from BOMMaster
where t_pono = 1
group by t_item, t_pono

給定 t_pono 是 smallint 數據類型,t_item 是 varchar(16) 數據類型

暫無
暫無

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

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