如何在一个视图中使用带有2个参数的AVG()

时间:2017-11-04 10:00:32

标签: php sql

我有一个像这样的表格视图

CREATE VIEW detail_sp AS (

  SELECT ds.spesific_goal,k.pertanyaan,su.sub_unit,ds.skor FROM
    detail_survey ds
  LEFT JOIN 
    kuesioner k 
  ON
    ds.nomor_soal=k.id
  LEFT JOIN
    sub_unit su
  ON 
    k.id_subunit=su.id
);

像这样的代码的结构,

spesific_goal | pertanyaan | sub_unit |郭尔

样本数据输出

mysql> select * from detail_sp where spesific_goal = 1
    -> ;
+---------------+---------------------------------------------------------------
----------------------+----------+------+
| spesific_goal | pertanyaan
                      | sub_unit | skor |
+---------------+---------------------------------------------------------------
----------------------+----------+------+
|             1 | Dilakukan survei kepuasan pelanggan
                      | Niaga    |    4 |
|             1 | Terdapat perjanjian pelayanan (Service Agreement) sebelum meng
gunakan jasa dari PLN | Niaga    |    4 |
|             1 | Dilakukan survei kepuasan pelanggan
                      | Niaga    |    4 |
|             1 | Terdapat perjanjian pelayanan (Service Agreement) sebelum meng
gunakan jasa dari PLN | Niaga    |    4 |
|             1 | Dilakukan survei kepuasan pelanggan
                      | Niaga    |    4 |
|             1 | Terdapat perjanjian pelayanan (Service Agreement) sebelum meng
gunakan jasa dari PLN | Niaga    |    4 |
|             1 | Dilakukan survei kepuasan pelanggan
                      | Niaga    |    3 |
|             1 | Terdapat perjanjian pelayanan (Service Agreement) sebelum meng
gunakan jasa dari PLN | Niaga    |    4 |
|             1 | Dilakukan survei kepuasan pelanggan
                      | Niaga    |    3 |
|             1 | Terdapat perjanjian pelayanan (Service Agreement) sebelum meng
gunakan jasa dari PLN | Niaga    |    4 |
|             1 | Dilakukan survei kepuasan pelanggan
                      | Niaga    |    4 |
|             1 | Terdapat perjanjian pelayanan (Service Agreement) sebelum meng
gunakan jasa dari PLN | Niaga    |    4 |
|             1 | Dilakukan survei kepuasan pelanggan
                      | Niaga    |    2 |
|             1 | Terdapat perjanjian pelayanan (Service Agreement) sebelum meng
gunakan jasa dari PLN | Niaga    |    4 |
+---------------+---------------------------------------------------------------
----------------------+----------+------+
14 rows in set (0.00 sec)

如何使用skorpertanyaan计算sub-units参数?

因此,当问题和子单位相同时,可以获得平均分数计算。

如果我使用avg我希望结果像这样

mysql> select * from detail_sp where spesific_goal = 1
    -> ;
+---------------+---------------------------------------------------------------
----------------------+----------+------+
| spesific_goal | pertanyaan
                      | sub_unit | skor |
+---------------+---------------------------------------------------------------
----------------------+----------+------+
|             1 | Dilakukan survei kepuasan pelanggan
                      | Niaga    |    4 |
|             1 | Terdapat perjanjian pelayanan (Service Agreement) sebelum meng
gunakan jasa dari PLN | Niaga    |    4 |
+---------------+---------------------------------------------------------------
----------------------+----------+------+
14 rows in set (0.00 sec)

skor来自avg。

1 个答案:

答案 0 :(得分:1)

您需要avg功能以及group by,如下所示。

SELECT ds.spesific_goal,
       k.pertanyaan,
       su.sub_unit,
       avg(ds.skor)
FROM detail_survey ds
LEFT JOIN kuesioner k ON ds.nomor_soal=k.id
LEFT JOIN sub_unit su ON k.id_subunit=su.id
GROUP BY ds.spesific_goal,
         k.pertanyaan,
         su.sub_unit;