将列匹配到SQL列

时间:2014-12-04 02:43:18

标签: mysql sql

尝试将列合并/匹配到同一个表中的另一列

基本上我希望ShareID属于ShareCategory。那么我可以按平均值匹配类别,并显示其CATEGORY

中的最高份额

enter image description here

输出需要显示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

)

1 个答案:

答案 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