(SELECT MAX(a) AS aa, MAX(b) as bb,c, FROM table Group By c) 这个语句取了多个字段。不知道你的表结果及想要什么数据,试试下面的先 Select * from table a inner join (SELECT MAX(a) AS aa, MAX(b) as bb,c FROM table Group By c) b on a.a=b.aa and a.b=b.bb 看是否你要的
internetcsdn(公元1979年8月10日) [table]为什么要[]起来?我不明了 不过我刚刚加上了[table] 还是一样的错误讯息 huwgao(小楼听雨) 我的目的是 表table 字段 a b c d e f g h(a是唯一的int) 因为c字段是重复的数据 我想要选出每个不重复的c字段中的最大的b字段 然后会得到a b c的表 再用a当作过滤值 来显示出这个a字段的其它值
1.table就是关键字,作为对象引用的时候必须加[]起来 2.in关键字后面跟的应该是一些常量,比如‘1’,‘2’等 你的意思不太明白,看看这个: Select * from [table] where exists (SELECT MAX(b) as bb,c FROM [table] Group By c)
那换个方式问好了 我要在1个表中计算重复的商品有几个怎么写呢 例如 商品1 有5个 商品2有3个 商品3有10个 我要计算出商品总共有3项 就是把重复的去掉 --如果是这个就简单了 select count(distinct 商品类别) from 表--如果是下面的, 表table 字段 a b c d e f g h(a是唯一的int) 因为c字段是重复的数据 我想要选出每个不重复的c字段中的最大的b字段 然后会得到a b c的表 再用a当作过滤值 来显示出这个a字段的其它值 --如果不重复的c字段中的最大的b字段有重复,取出所有重复的 select a,b,c from 表 a inner join ( select c,b=max(b) from 表 group by c) b on a.c=b.c and a.b=b.b --如果不重复的c字段中的最大的b字段有重复,仅取出一条 select a,b,c from 表 a where a in (select top 1 a from 表 where c=a.c order by b desc)
delete 表 where newfield not in( select min(newfield) from 表 group by 除newfield外的所有字段 ) delete a from 表 a left join( select tushubianhao=min(tushubianhao) from 表 group by shuming,zuozhe,dingjia )b on a.tushubianhao=b.tushubianhao where b.tushubianhao is null -- 刪除表中重復的記錄(有标识的情况) DELETE delete1 FROM tabTest delete1 JOIN tabTest delete2 ON delete1.student_id=delete2.student_id AND delete1.course_id=delete2.course_id AND delete1.id>delete2.id
SELECT MAX(a) AS aa, MAX(b) as bb,c, FROM table Group By c 这句话返回了三个字段,太多用看看哪一个是你想要的留着就行
这个语句取了多个字段。不知道你的表结果及想要什么数据,试试下面的先
Select * from table a
inner join
(SELECT MAX(a) AS aa, MAX(b) as bb,c FROM table Group By c) b
on a.a=b.aa and a.b=b.bb
看是否你要的
[table]为什么要[]起来?我不明了
不过我刚刚加上了[table] 还是一样的错误讯息
huwgao(小楼听雨)
我的目的是
表table 字段 a b c d e f g h(a是唯一的int)
因为c字段是重复的数据 我想要选出每个不重复的c字段中的最大的b字段
然后会得到a b c的表 再用a当作过滤值 来显示出这个a字段的其它值
2.in关键字后面跟的应该是一些常量,比如‘1’,‘2’等
你的意思不太明白,看看这个:
Select * from [table]
where exists
(SELECT MAX(b) as bb,c FROM [table] Group By c)
例如 商品1 有5个 商品2有3个 商品3有10个
我要计算出商品总共有3项 就是把重复的去掉
感谢您的回答
例如 商品1 有5个 商品2有3个 商品3有10个
我要计算出商品总共有3项 就是把重复的去掉
--如果是这个就简单了
select count(distinct 商品类别) from 表--如果是下面的,
表table 字段 a b c d e f g h(a是唯一的int)
因为c字段是重复的数据 我想要选出每个不重复的c字段中的最大的b字段
然后会得到a b c的表 再用a当作过滤值 来显示出这个a字段的其它值
--如果不重复的c字段中的最大的b字段有重复,取出所有重复的
select a,b,c from 表 a
inner join (
select c,b=max(b) from 表 group by c) b
on a.c=b.c and a.b=b.b
--如果不重复的c字段中的最大的b字段有重复,仅取出一条
select a,b,c from 表 a
where a in (select top 1 a from 表 where c=a.c order by b desc)
where newfield not in(
select min(newfield) from 表 group by 除newfield外的所有字段
)
delete a
from 表 a left join(
select tushubianhao=min(tushubianhao)
from 表
group by shuming,zuozhe,dingjia
)b on a.tushubianhao=b.tushubianhao
where b.tushubianhao is null
-- 刪除表中重復的記錄(有标识的情况)
DELETE delete1
FROM tabTest delete1
JOIN tabTest delete2
ON delete1.student_id=delete2.student_id AND delete1.course_id=delete2.course_id AND delete1.id>delete2.id
这句话返回了三个字段,太多用看看哪一个是你想要的留着就行