2017-10-19 42 views
0

我有一個包含32個產品的字段的表。每個字段中的值可能爲H,M和LMySQL,在表中的每個字段中的計數值

模擬了我的表結構

Product 1 Product 2 Product 3 Product 4 Product 5 ... 
H   M   M   L   L   ...  
H   H   M   L   L   ...  
H   H   H   H   L   ...  
M   M   M   L   H   ...  
H   M   M   L   L   ...  

我知道我能做到

SELECT COUNT(product_1) AS product_1_count FROM products WHERE product_1 = H 

SELECT COUNT(product_1) AS product_1_count FROM products WHERE product_1 = L 

SELECT COUNT(product_1) AS product_1_count FROM products WHERE product_1 = L 

我想知道是否有更快的方法來做到這一點,因爲我有32種產品。你能用1條SQL語句還是至少3條SQL語句來完成它,而不是單獨選擇每個產品。

+0

乍一看,這看起來像一個不好的數據模型。您可能想要在此上添加請求以獲得建議。另一個數據模型可能會使寫入查詢更加容易。 –

回答

0

您是否對每種產品都有單獨的列? product_1,product_2等?

你至少可以通過產品組:

SELECT product_1,通過product_1

COUNT(*)FROM產品 組你需要計數H,M,L ...爲每個字段( product_1,product_2 ...)或者只計數(product_1),count(product_2)...?

+0

是的,我有每個產品單獨的列。我需要爲每種產品計算H,M和L. –