簡體   English   中英

MySQL使用其他列的數據計算的平均值填充列

[英]MySQL populate column with calculated average from data of other column

我有兩個表:一個是名稱,另一個是通過nameID連接的等級。 我想從評分表中的數據中找到評分的平均值,然后將結果填充到場地表中的相應場地。 我不知道該怎么辦。 關於如何使用MySQL進行操作的任何指針?

這應該可行,但就像其他人說的那樣,最好是從評分表中獲取平均值,而不是使用觸發器來更新場地表。 因此,這將創建一個更新場館平均評級的過程,該過程將從兩個觸發器中調用,以在評級表上進行插入和更新。

DELIMITER //

CREATE PROCEDURE updateVenueRating(IN venue_id INT)
READS SQL DATA
BEGIN

update venue AS v
SET v.avgrating = 
(select avg(rating)
from ratingtable
where ratingtable.venueid = v.id 
)
where v.id = venue_id;

END//

CREATE TRIGGER venue_insert_trigger
    AFTER INSERT ON ratingtable
    FOR EACH ROW
BEGIN
    CALL updateVenueRating(NEW.VenueId);
END//

CREATE TRIGGER venue_update_trigger
    AFTER UPDATE ON ratingtable
    FOR EACH ROW
BEGIN
    CALL updateVenueRating(NEW.VenueId);
END//
DELIMITER ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM