去重复留重复最大ID,求大神 sql 转 ling to sql 下

不啦草 2014-05-02 01:32:13
select * from Table1 where ID in (select Max(ID) from Table1 group by Name having count(*)>1)
...全文
224 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
不啦草 2014-05-06
  • 打赏
  • 举报
回复
引用 10 楼 u013702063 的回复:
 var result = from x in Table1
                          join temp in
                              (
                          from dt in Table1
                          group dt by dt.Name into g
                          where g.Count() > 1
                          select new { g.Key, ID = g.Max(y => y.ID) }
                                  )
                          on x.ID equals temp.ID
                          select x;
嗯 结果对的,谢谢 解答
江湖的传说 2014-05-05
  • 打赏
  • 举报
回复
 var result = from x in Table1
                          join temp in
                              (
                          from dt in Table1
                          group dt by dt.Name into g
                          where g.Count() > 1
                          select new { g.Key, ID = g.Max(y => y.ID) }
                                  )
                          on x.ID equals temp.ID
                          select x;
江湖的传说 2014-05-05
  • 打赏
  • 举报
回复
正在学习LINQL, 献丑了
   var result = from x in Table1
                          join temp in
                              (
                          from dt in Table1
                          group dt by dt.Name into g
                          where g.Count() > 1
                          select new { g.Key, ID = g.Max(y => y.ID) }
                                  )
                          on x.DocAccountID equals temp.ID
                          select x;
gangAndgang 2014-05-05
  • 打赏
  • 举报
回复
引用 7 楼 ye987987 的回复:
[quote=引用 5 楼 sp1234 的回复:] 你的sql写得不太好,而且你的标题上一上来就误导别人,所以人家才会写出“distinct”的回复。不要怀着“狐狸诬陷酸葡萄”的心理、因为自己的linq写得差,就埋怨人家写linq有问题。 大致是
var result = from x in Table
                group x by x.Name into g
                select (from y in g orderby y.ID descending select y).First();
其实sql写不好,那么linq表达式也写不好。反之,如果linq写不好,那么你的sql也好不到哪里去。
你这人 一进来 就开始喷, 第一 不看清楚 标题 就进来开始JJYY, 去重复 留重复最大ID 描述有错吗? 第二 你自己审题 和我 的sql都没看清楚 你觉得你的linq 写对了吗? 错的离谱 还回你自己的话 不谢“其实sql写不好,那么linq表达式也写不好。反之,如果linq写不好,那么你的sql也好不到哪里去。”[/quote] 顶
不啦草 2014-05-05
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
你的sql写得不太好,而且你的标题上一上来就误导别人,所以人家才会写出“distinct”的回复。不要怀着“狐狸诬陷酸葡萄”的心理、因为自己的linq写得差,就埋怨人家写linq有问题。 大致是
var result = from x in Table
                group x by x.Name into g
                select (from y in g orderby y.ID descending select y).First();
其实sql写不好,那么linq表达式也写不好。反之,如果linq写不好,那么你的sql也好不到哪里去。
你这人 一进来 就开始喷, 第一 不看清楚 标题 就进来开始JJYY, 去重复 留重复最大ID 描述有错吗? 第二 你自己审题 和我 的sql都没看清楚 你觉得你的linq 写对了吗? 错的离谱 还回你自己的话 不谢“其实sql写不好,那么linq表达式也写不好。反之,如果linq写不好,那么你的sql也好不到哪里去。”
gangAndgang 2014-05-04
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
你的sql写得不太好,而且你的标题上一上来就误导别人,所以人家才会写出“distinct”的回复。不要怀着“狐狸诬陷酸葡萄”的心理、因为自己的linq写得差,就埋怨人家写linq有问题。 大致是
var result = from x in Table
                group x by x.Name into g
                select (from y in g orderby y.ID descending select y).First();
其实sql写不好,那么linq表达式也写不好。反之,如果linq写不好,那么你的sql也好不到哪里去。
这结果好像不对。 楼主要的是 select * from Table1 where ID in (select Max(ID) from Table1 group by Name having count(*)>1) ,结果集应该是table1的结构,你这种写法返回的结果是group后台的结构吧。能把这种LINQ写法生成的最终的SQL发出来看下吗,比较下最终的结果是否一致?
  • 打赏
  • 举报
回复
你的sql写得不太好,而且你的标题上一上来就误导别人,所以人家才会写出“distinct”的回复。不要怀着“狐狸诬陷酸葡萄”的心理、因为自己的linq写得差,就埋怨人家写linq有问题。 大致是
var result = from x in Table
                group x by x.Name into g
                select (from y in g orderby y.ID descending select y).First();
其实sql写不好,那么linq表达式也写不好。反之,如果linq写不好,那么你的sql也好不到哪里去。
gangAndgang 2014-05-02
  • 打赏
  • 举报
回复
问到LINQ的痛点了,我也很想知道这样的花10秒钟能写出来的SQL,要多少时间才能写出相应的LINQ语句
不啦草 2014-05-02
  • 打赏
  • 举报
回复
引用 2 楼 zhanglong_longlong 的回复:
同一个table里面直接 distinct不可以吗?
肯定不可以啊 distinct 是全表 我最要一个过滤 NAME 字段
zhanglong_longlong 2014-05-02
  • 打赏
  • 举报
回复
同一个table里面直接 distinct不可以吗?

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧