2016-07-31 56 views
0

我被困在一個問題上,我希望你們可以幫忙。卡住了;帶有聚合函數的SQL case語句

我與XAMPP和PHP我聯繫(PMA)

運行MySQL我有兩個表:

表A

A   |B 
1000000001 |100000001 
1000000001 |100000002 
1000000001 |100000003 
1000000002 |100000004 
1000000002 |100000005 
1000000003 |100000006 

表B

C   |D 
1000000001|100000000000001 
1000000002|100000000000002 
1000000003|100000000000003 
1000000004|100000000000004 
1000000005|100000000000005 
1000000006|100000000000006 

我有加入這兩張表格代表以下內容:

A  |B/C  |D 
100000001|1000000001|100000000000001 
100000001|1000000002|100000000000002 
100000001|1000000003|100000000000003 
100000002|1000000004|100000000000004 
100000002|1000000005|100000000000005 
100000003|1000000006|100000000000006 

注意前三個數據點中出現的模式。

基本上我需要幫助瞭解如何編寫案例腳本,將返回一個唯一的值,每一個值d值的計數

迴歸將是:

A  |D_COUNT 
100000001|3 
100000001|2 
100000003|1 

謝謝!

+2

你不能用'CASE'來做到這一點。你可以通過['GROUP BY']來實現(http://www.tutorialspoint.com/sql/sql-group-by.htm)。 – Andreas

+1

這並不是很難實現。你有什麼嘗試? – sstan

+0

我想我的語法最麻煩?再次PHPMyAdmin。或者我甚至需要一個案例陳述? –

回答

1
SELECT A, 
     COUNT(DISTINCT D) AS count_d 
FROM table_c 
GROUP BY A; 
0

嘗試此查詢:

select A,count(A) as D_Count from tablename group by A 
1

你給的表似乎有點錯誤,TableA.B的長度是9和TableB.C爲10,忽略這一點,可以寫你的查詢字符串這樣的:

select A,count(A) as D_COUNT 
from t_a,t_b 
where t_a.b=t_b.c 
group by t_a.A; 

表A ==> T_A

表B ==> T_B