2017-01-10 63 views
1

我具有例如1數據庫整除實驗室ID = 15樣品每個樣品有4個項目或大於4。計數行由4

例如數據

Lab ID Sample ID Test ID /each test ID have 
1   16   32   test a  
1   16   32   test b 
1   16   32   test c  total test 4 
1   16   32   test d 

1   17   33   test a 
1   17   33   test b 
1   17   33   test c  total total 5 
1   17   33   test d 
1   17   33   test e 

1   18   34   test a 
1   18   34   test b 
1   18   34   test c total total 5 
1   18   34   test d 
1   18   34   test e 

1   19   35   test a 
1   19   35   test b 
1   19   35   test c total total 5 
1   19   35   test d 
1   19   35   test e 

1   20   36   test a 
1   20   36   test b total total 4 
1   20   36   test c 
1   20   36   test d 

如何可計算每個的數目測試ID不能被4整除?

輸出必須是3

+0

的MySQL數據庫XAMMP你 –

+2

是否嘗試過什麼?或者你只是需要答案...:/ – Aditya

+0

我試過但沒有得到正確的結果 –

回答

1

使用MODULO操作,MOD

select count(*) 
from `your_table_name` 
where MOD(`Test ID`, 4) <> 0; 

結果

enter image description here

+0

即時獲得6它也在計數與結果4行.. –

+0

選擇計數(test_id)從test_kind其中labid = 16和test_id%4 = 0 我試試這個..即時通訊12 .. W/C的答案必須是6先生.. –

+0

我有6個樣品ID超過4個測試ID。 –

0

大多數SQL的數據庫支持模運算符。

SELECT COUNT(1) FROM yourTable WHERE yourColumn % 4 != 0 
0

可以使用%運營商這樣的:

SELECT COUNT(1) FROM TABLE WHERE `Test ID` % 4 <> 0; 
+0

即時獲得6它也計數結果4行.. –

+1

這不可能。你能證明這個嗎? –

+0

從test_kind中選擇count(test_id)其中labid = 16和test_id%4 = 0 我試試這個.. im獲得12 .. w/c答案必須是6先生.. –

0

您也可以使測試計數的內部,如果你有其他的統計數據在同一個查詢檢索:

SELECT COUNT(NULLIF(MOD(`Test ID`, 4), 0)) 
FROM t; 
1

嘗試查詢下面

select count(*) from  
    ( select count(*) from example a 
     where MOD(`Test_ID`, 4) <> 0 group by Test_ID) b 

別名ab需因爲SQL中的錯誤使用

#1248 - Every derived table must have its own alias 

所以你可以ch如果需要,可以使用ange別名。

工作SQLFiddle here

希望它可以幫助你

0

,如果你只想要測試ID那就試試這個

SELECT A.`Test ID` FROM(SELECT `Test ID`,COUNT(1) AS COUNT FROM TABLE GROUP BY `Test ID`) AS A WHERE A.COUNT % 4<>0; 

,如果你想測試ID以計數那就試試這個

SELECT A.`Test ID`,A.COUNT FROM(SELECT `Test ID`,COUNT(1) AS COUNT FROM TABLE GROUP BY `Test ID`) AS A WHERE A.COUNT % 4<>0; 

如果您只需要計數沒有四次測試的總測試ID那就試試這個

SELECT COUNT(1) AS COUNT FROM(SELECT `Test ID`,COUNT(1) AS COUNT FROM TABLE GROUP BY `Test ID`) AS A WHERE A.COUNT % 4<>0; 
0

你可以通過使用功能

MOD(字段名,號碼)

下面的查詢將有助於你得到期望的結果所期望的: -

select count(*) from your_table_name 其中MOD(Test ID,4)<> 0;

這裏MOD(Test ID,4)檢查,它不應該是等於4