我有這個表,我想計算基於該cat_id
和基於該user_id
的國join
其存儲在另一個表中的所有用戶的平均響應時間。計算其他平均數的平均值在MySQL
找到基於用戶國家的平均時間的正確方法是什麼?
+---------+--------+-------+-------+-------+-------+-------+-------+-------+
| user_id | cat_id | time1 | time2 | time3 | time4 | time5 | time6 | time7 |
+---------+--------+-------+-------+-------+-------+-------+-------+-------+
| 11 | 1 | 10000 | 3500 | 10000 | 10000 | 7000 | 6000 | 6500 |
| 0 | 1 | 6139 | 2640 | 5438 | 8136 | 7157 | 8723 | 4677 |
| 11 | 3 | 7500 | 5500 | 10000 | 5500 | 7500 | 4000 | 9500 |
| 0 | 3 | 7462 | 8907 | 7513 | 4181 | 7275 | 2074 | 4444 |
| 1 | 1 | 8500 | 2000 | 8500 | 1500 | 10000 | 6500 | 10000 |
| 0 | 1 | 8885 | 7240 | 2153 | 6115 | 6330 | 6151 | 4325 |
| 1 | 1 | 10000 | 3000 | 10000 | 5500 | 10000 | 9000 | 10000 |
| 0 | 1 | 6188 | 3280 | 4725 | 5662 | 3344 | 8792 | 7560 |
| 1 | 4 | 4000 | 4500 | 10000 | 5000 | 3000 | 1500 | 2112 |
| 0 | 4 | 2750 | 4861 | 3413 | 4174 | 3080 | 3213 | 7932 |
+---------+--------+-------+-------+-------+-------+-------+-------+-------+
我試過了:(AVG(time1 + time 2 + ... + time7)/7)
但是當我交叉檢查結果是不正確的。
預先感謝任何幫助:)
1.標準化您的模式。任何時候你發現自己在列舉的列中,警鐘應該開始響起。除此之外,這裏沒有任何國家,所以這個問題是不可解決的。 – Strawberry
@Strawberry不幸的是我無法改變數據庫中的任何東西。此外,這是來自「用戶」表,我可以執行「加入」並獲取「國家」表格。 id |國家| + ---- + --------- + | 0 | TEEEST | | 1 | TEEEST | | 2 | TEEEST | | 3 | TEEEST | + ---- + --------- + – kappammi
在這種情況下創建一個視圖,如下所示:'SELECT user_id,cat_id,1 time_no,time1 time FROM my_table UNION ALL SELECT user_id,cat_id,2,time2 FROM my_table ... etc.'然後將該視圖用於下一部分問題 – Strawberry