2017-07-29 74 views
-1

我有一個名爲表金額列ROWIDCounterId金額最後一個值。很容易通過CounterId分組得到計數器的平均值,但是如果我也想得到的最後一個值在組中知道它是大於還是小於平均值,我有麻煩了嗎?如何得到,因爲只包括金額在查詢中給我第一個值金額在組中什麼是無用的。也許這很容易做到,但是我只用一張桌子就沒有找到答案。我發現,如何找到最後金額在組幫助RowId,但如何獲得它們 - 平均和最後的價值 - 對於一個結果,現在對我來說是神祕的...先謝了。MySql的組平均值和組中的一個查詢


由於拉姆巴斯我建我需要什麼和結果是在這裏:

SELECT  Kliendid.Id  AS Id, 
      Kliendid.Nimi  AS Klient, 
      MIN(X.Tarbimine) AS Piseim, 
      AVG(X.Tarbimine) AS Keskmine, 
      MAX(X.Tarbimine) AS Suureim, 
      COUNT(X.Tarbimine) AS Kuid, 
      (
       Select Tarbimine 
       from Naidud A 
       where A.Id=MAX(X.Id) 
      ) as Viimane 
FROM  Naidud X 
INNER JOIN Kliendid ON Kliendid.ID=X.Klient 
INNER JOIN Mooturid ON Mooturid.ID=X.Mootur 
WHERE  X.Tarbimine>0 
    AND X.Aeg>'2015-12-31' 
    AND Mooturid.Kasutusel=1 
GROUP BY X.Mootur 
HAVING  Kuid>5 
    AND (Viimane=Piseim OR Viimane=Suureim) 

正如你看到的,我的問題簡化爲我用愛沙尼亞語表和列名會有多大如果我從一開始就共享代碼,就很難提供幫助......再次感謝大家。

+0

請在此處分享您的代碼。 –

+0

那麼你做了什麼,使用我們可以引導你 –

+0

請參閱https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to -me-to-a-very-simple-sql-query – Strawberry

回答

0

這裏我假設你RowId是唯一的或者是主鍵。

SELECT RowId,AVG(AmountId) as Average_Amount,(Select Amount from Amounts a where a.RowId=MAX(X.RowId)) as LastAmount from Amounts X Group by X.CounterId; 
+0

謝謝!由於我在SQL查詢中很粗糙,您的善意幫助我重新走上了道路。 – MuuSer

+0

如果您接受也會有所幫助的答案。 :) –

+0

我在第一天就接受了它,但系統說我的一些投票 - 用不到15個用戶點 - 保存了,但在我的聲望增長之前無法顯示。 :) – MuuSer