0

当我想运行视图时出现此错误,但我不知道为什么:

[23000][1052] Column 'name' in field list is ambiguous

询问:

create view prefix_group_rating AS
SELECT

  r.rating_date                                                                                  `Month`,
  ifnull(g.`name`, 'Total')                                                                      `Group`,

  avg(r.rating)                                                                                  `Avreage Rating`,
  count(DISTINCT s.idserver)                                                                     `Server Count`,
  concat(count(DISTINCT r1.idserver), ' : ',
         concat(format(count(DISTINCT r1.idserver) / count(DISTINCT s.idserver) * 100, 2), '%')) `Rating 1`,
  concat(count(DISTINCT r2.idserver), ' : ',
         concat(format(count(DISTINCT r2.idserver) / count(DISTINCT s.idserver) * 100, 2), '%')) `Rating 2`,
  concat(count(DISTINCT r3.idserver), ' : ',
         concat(format(count(DISTINCT r3.idserver) / count(DISTINCT s.idserver) * 100, 2), '%')) `Rating 3`,
  concat(count(DISTINCT r4.idserver), ' : ',
         concat(format(count(DISTINCT r4.idserver) / count(DISTINCT s.idserver) * 100, 2), '%')) `Rating 4`,
  concat(count(DISTINCT r5.idserver), ' : ',
         concat(format(count(DISTINCT r5.idserver) / count(DISTINCT s.idserver) * 100, 2), '%'))  `Rating 5`

FROM prefix_server s
  LEFT JOIN prefix_group g
    ON s.idgroup = g.idgroup
  LEFT JOIN prefix_server_rating r
    ON s.idserver = r.idserver
  LEFT JOIN prefix_server_rating r1
    ON s.idserver = r1.idserver AND r1.rating = 1 AND r.rating_date = r1.rating_date
  LEFT JOIN prefix_server_rating r2
    ON s.idserver = r2.idserver AND r2.rating = 2 AND r.rating_date = r2.rating_date
  LEFT JOIN prefix_server_rating r3
    ON s.idserver = r3.idserver AND r3.rating = 3 AND r.rating_date = r3.rating_date
  LEFT JOIN prefix_server_rating r4
    ON s.idserver = r4.idserver AND r4.rating = 4 AND r.rating_date = r4.rating_date
  LEFT JOIN prefix_server_rating r5
    ON s.idserver = r5.idserver AND r5.rating = 5 AND r.rating_date = r5.rating_date

WHERE r.idserver_rating IS NOT null         
      AND r.rating_date IS NOT null

GROUP BY r.rating_date, g.`name`;

select * from prefix_group_rating;

当我将“ ifnull(g. name, 'Total')”替换为“g. name”或删除“with rollup”并运行选择时,它可以工作。请帮忙

4

0 回答 0