尝试将列合并/匹配到同一个表中的另一列
基本上我希望ShareID属于ShareCategory。那么我可以按平均值匹配类别,并显示其CATEGORY
中的最高份额
输出需要显示shareID,ShareNAme,ShareCategorie。但是只有拥有ShareSellPrice的Sharenames在他们的OWN类别中享有平均水平。
使用"加入" Piyush在这里建议的命令。获得512 msg。 代码即时编写看起来像这样:
select ray.ShareID, ray.ShareName, AVG(ray.ShareSellPrice)
from share_tbl
join share_tbl as ray
on dbo.share_tbl.ShareID = ray.ShareCategory
group by ray.ShareSellPrice, ray.ShareID, ray.ShareName
having ray.ShareSellPrice>
(
select ray.ShareSellPrice
from share_tbl
)
答案 0 :(得分:1)
您可以在子查询中获得每个类别的平均价格,并与类别列上的主表相关联,并将股价与平均价格进行比较以获得所需结果
select s.shareId, s.shareName, s.shareCategory, T.AvgPrice
from share_tbl s
join ( select shareCategory, avg(ShareSellPrice) as AvgPrice
from share_tbl
group by shareCategory
)T
on s.shareCategory = T.shareCategory
and s.ShareSellPrice >= T.AvgPrice