select shopname,max(price) from table group by shopname
查询结果
shopname, max(price)
店A               120
店B               130
然后再把这个结果跟原来的表做联合查询

解决方案 »

  1.   

    或者你都读到datatable里,自己遍历匹配
      

  2.   

    比如select * from table order by shopname asc,price desc
    查询结果
    店A                2                  120
    店A               1                  100
    店B               3                   130
    店B               4                    100
    店名正序排列,价格倒序排列,判断店名如果改变了,那么第一条就是你要的结果
      

  3.   

    SQL语句可以使用类似:
    SELECT * FROM 
    (
     SELECT *, RANK() OVER (PARTITION BY SHOPNAME ORDER BY PRICE DESC) AS RK  FROM YOURTABLE 
    )
    WHERE RK = 1
    改成LINQ参见http://stackoverflow.com/questions/9980568/row-number-over-partition-by-xxx-in-linq