我正在使用MySQL 5.0。MySQL - 加入自己的VIEW
我想根據視圖中的前一行執行計算。這可能嗎?我假設不是因爲查詢在查詢實際運行之前不存在,那麼是否有解決方法,或者是創建和更新表格我最好的選擇?
這是我的編碼不正確,缺乏邏輯,我知道,但它顯示了我想要實現:
CREATE VIEW `Master Facebook Data` tt1 AS SELECT
t1.id AS `Client ID`,
t1.name AS `Client Name`,
t1.`Date`,
avg(t1.`Daily People Talking About This`) AS `Avg Daily Talk`,
(((tt1.`Avg Daily Talk`-IFNULL(tt2.`Avg Daily Talk`, 0)))/tt1.`Avg Daily Talk`) AS `Change in Talk`,
avg(t1.`Weekly Total Reach`) AS `Avg Weekly Reach`,
(((tt1.`Avg Weekly Reach`-IFNULL(tt2.`Avg Weekly Reach`, 0)))/tt1.`Avg Weekly Reach`) AS `Change in Reach`,
avg(t1.`Daily Viral Reach`) AS `Avg Daily Viral`,
(((tt1.`Avg Daily Viral`-IFNULL(tt2.`Avg Daily Viral`, 0)))/tt1.`Avg Daily Viral` AS `Change in Viral`
FROM `clients` t1
JOIN `FB Exports - Key Metrics` t2
ON t1.`id` = t2.`client`
LEFT OUTER JOIN `Master Facebook Data` tt2
ON tt1.`Client ID` = tt2.`Client ID`
AND month(tt1.`Date`)-month(tt2.`Date`)=1
GROUP BY t2.`client`, month(t2.`Date`)
ORDER BY t2.`client`, t2.`Date`
太謝謝你了! =]
原諒我,但我想我錯了我的問題!我並不是說我真的在使用「上一行」,而是在上一個月,恰好來自上一行。我的上面的代碼中已經顯示了將會計算出的代碼。 我真正想要問的是,如何將視圖加入自身以便根據內部/左側/任何聯接執行計算? – likelepers
例如,我該如何去做這樣的事情?: CREATE VIEW'主Facebook數據'tt1 AS SELECT col1 AS column1 FROM'clients' t1 JOIN'FB Exports - Key Metrics' t2 ON t1.' id' = t2.'client' LEFT OUTER JOIN'Master Facebook Data' tt2 ON tt1.'Client ID' = tt2.'Client ID' AND month(tt1.'Date')-month(tt2。'Date')= 1 – likelepers
@likelepers - 只要列是'NOT NULL'和'UNIQUE',隨意用'month(Date)'代替'col'。如果您的月份數字序列沒有任何間隙,請隨意簡化。我說你可以對待視圖,因爲你會對待一張桌子,它會起作用。 –