1

fieldB のカウントを取得する方法はありますが、fieldA と fieldB の組み合わせが一意である場合のみですか?

例えば

fieldA     fieldB
X          A
X          B
Y          C
X          B
Y          A

フィールド B のカウントは次を返します。

A = 2
B = 1
C = 1

「SELECT DISTINCT fieldA, COUNT(fieldB) AS count FROM table GROUP BY fieldB」を使用してみました。これは、一意の fieldA を持つ値だけでなく、fieldB のすべての値のカウントを返すようです。

私がやろうとしていることは理にかなっているといいのですが、言葉にするのは難しいと思います. 私がやろうとしていることはSQLで可能ですか?

ありがとう

4

4 に答える 4

3

そのはず

SELECT fieldB, COUNT(DISTINCT  fieldA, fieldB) AS count 
FROM table 
GROUP BY fieldB;
于 2012-07-20T10:15:08.860 に答える
0
SELECT   fieldA, COUNT(fieldB) AS count from
(SELECT DISTINCT fieldA, fieldB FROM table)a
FROM a GROUP BY a.fieldB
于 2012-07-20T10:16:54.157 に答える
0

私はこれがあなたをそこに連れて行くと思います

Declare @mytbl table (fieldA char(1), fieldB char(1))
insert into @mytbl
select 'X','A'
union all select 'X','B'
union all select 'Y','C'
union all select 'X','B'
union all select 'Y','A'

select COUNT(*), LEFT(myfields,1)
from 
(
select distinct fieldb + fielda as myfields
from @mytbl
group by fieldb + fielda
) a
group by LEFT(myfields,1)

戻り値

2A1B1C

于 2012-07-20T10:20:01.970 に答える
0
DECLARE @mytb table
(
fieldA varchar(10),
fieldB varchar(10)
);

INSERT into @mytb values('X','A');
INSERT into @mytb values('X','B');
INSERT into @mytb values('Y','C');
INSERT into @mytb values('X','B');
INSERT into @mytb values('Y','A');

SELECT fieldB,count(DISTINCT fieldA+fieldB) as count
from @mytb
group BY fieldB;


   fieldB     count
---------- -----------
    A          2
    B          1
    C          1
于 2012-07-20T10:20:03.847 に答える