sql语句如何实现实现查询多列的数据?

如下图,我想根据productID分组或者唯一查询一条数据就行了,但是分组和唯一只能查出来productid这一列数据,有什么办法能实现查询多列数据呢?希望大家帮忙拉!

第1个回答  2011-12-29
从你的需求看,是前后矛盾的.

想根据productID分组 实现查询多列数据,而 实际上,后面的列内容并不相同,因此,肯定会出来多个数据.

如果想 唯一查询一条数据就行,而 多列的不同,谁也无法确定你要那个.

如果是 统计字段的多列数据,是可以的,分组时候,选择统计数据字段即可.
第2个回答  2011-12-29
可以,我看Id列应该是唯一的吧。根据productID分组的时候,取max(id),然后通过此id关联,就可以把其他列数据也查询出来了
第3个回答  2015-08-05
WITH tablea AS(
SELECT 'a' a,'b' b,'c' c
UNION ALL
select 'a','b','c'
UNION ALL
select 'a','b','d'
UNION ALL
select 'a','c','d'
UNION ALL
select 'a','b','c'
),
tableb AS(
SELECT a,b,c FROM tablea GROUP BY a,b,c
)
SELECT * FROM tableb
先将A表group by 然后跟B,C表关联.
第4个回答  2011-12-29
select * from [table] where id in
(select max(id) from [table] group by productid)本回答被提问者采纳

sql语句如何实现实现查询多列的数据?
如果是 统计字段的多列数据,是可以的,分组时候,选择统计数据字段即可.

SQL查询,如何查询一个表中第三行,第三列的数据
其实很简单,只是取第三列的数据时候你需要知道第三列的字段名。我做了以下方法:select t.列的字段名 from (select ROWNUM As No , M.* from 表名 M) t where t.No = '3'就可以了。这里的M表和T表是一个表,也即是说如果你的表明为A的话,select t.列的字段名 from (select R...

sql查询一张表多列对应另一张表的值
commit;三、语句:select rownum,accname from zhidao_20131010_1_tab2 where account in (select account1 from zhidao_20131010_1_tab1 union all select account2 from zhidao_20131010_1_tab1 union all select account3 from zhidao_20131010_1_tab1);四、查询结果:ROWNUM ACCNAME 1 阿斯...

SQL 查询多条符合条件的记录
总之你的多个“条件”如果能用select出来的话,把结果放到in里就可以了。

sql 查询 一个表中某几列数据
所有数据可以用到sql中的通配符%,用来进行模糊查询。用法是 select * from test1 where id=‘2’and name like '%' and age like '%',表示从test1表中查询id为2,name和age任意的数据。1、为了对比前后查询数据,先查询表test1中的所有数据,select * from test1,如下图所示。2、再用通配符%...

sql 查询 一个表中某几列数据
sql查询一个表中某几列数据语法:1、SELECT 列名称1、列名称2...列名称n FROM 表名称 WHERE 列 运算符 值;2、SELECT * from 表名称 where 列 运算符 值(列 运算符 值,这个可以是多个,中间用and隔开)。解析:使用sql查询时,作为查询的筛选限制条件,只需要对有限制要求的字段使用where进行...

sql查询语句按条件统计字段值并在一个表中多列显示
这个sql可以通过将初始查询结果集用括号括起来当作一个子查询(也可以称之为虚拟表),然后再对其实施进一步筛选从而获得另一个结果集的办法予以实现。例如列出各科平均分在80到90分的同学姓名和各科平均分 select stu.name,t.平均分 from stu,(select sid,avg(score) as 平均分 from scores group b...

sql语句怎么样一次性查询多个条件,并分列显示?
方法一,分别查询出来,结果再关联 select fnum1,fnum2 from(select count(*) as fnum1 from 表名 where a=2 and b=3) t1,(select count(*) as fnum2 from 表名 where a=3 and b=5) t2方法二 select sum(case when a = 2 and b = 3 then 1 else 0 end) as fnum1, ...

SQL查同一个字段输出两列?
首先分析,既然需要按照year分组,那么就需要用到group by 那么 就可以写出如下:select year , xx, xx from 表名 group by year如何计算组内code开头为1的quantity之和以及code开头为2的quantity之和的数据,那么需要用到sum,并且分别刷选出code开头为1和code开头为2的数据即可。完整SQL如下:select ...

SQL中的Group By的查询过程多列分组的查询过程是怎样的?
如果指定了ALL,将对组中不满足搜索条件的汇总列返回空值。不能用CUBE或ROLLUP运算符指定ALL。如果访问远程表的查询中有WHERE子句,则不支持Group By ALL操作。\\r\\n \\r\\n Group_By_expression:对其执行分组的表达式。Group_By_expression也称为分组列。Group_By_expression可以是列或引用列的非聚合...

相似回答