我有下表
Type Group Price
1 A 600.00
2 A 800.00
3 B 300.00
4 B 300.00
5 B 400.00
6 A 200.00
我想使用SQL查询显示带有输出的Group的计算平均值如下所示。
Type Group Price Average By Group
1 A 600.00 533.333
2 A 800.00 533.333
3 B 300.00 333.333
4 B 300.00 333.333
5 B 400.00 333.333
6 A 200.00 533.333
如果有人可以在SQL中帮助我,我真的很感激。
答案 0 :(得分:0)
我并不总是最擅长提高效率,并且通过观察它我觉得有一种更好的方法可以做到这一点,但在此之前,你应该可以使用......
SELECT *, (SELECT AVG(Price) FROM averageTest t2 WHERE t2.[Group] = t.[Group] GROUP BY t2.[Group]) as GroupAverage FROM averageTest t
答案 1 :(得分:0)
大多数数据库都支持ANSI标准窗口函数。这些确切地解决了你的问题:
@Override
public void mousePressed(MouseEvent e)
{
checkPopup(e); // triggers the popup event under Linux but not under Windows
}
@Override
public void mouseReleased(MouseEvent e)
{
checkPopup(e); // triggers the popup event under Windows but not under Linux
}
private void checkPopup(MouseEvent e)
{
if (e.isPopupTrigger())
{
// do something
}
}
注意:select t.*,
avg(price) over (partition by group) as average_by_group
from t;
是SQL中的关键字,因此不应将其用作列名。一般来说,除非使用数据库的相应转义字符(通常是双引号工作)进行转义,否则它甚至不会被识别。