Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL组数据问题_Sql_Grouping - Fatal编程技术网

SQL组数据问题

SQL组数据问题,sql,grouping,Sql,Grouping,我正在尝试从以下表格中检索数据: col1 col2 col3 col4 col5 col6 aaaa bbbb cccc oooo eric date1 aasa bcbb ccfc ooho Samm date2 aaaa bbbb cccc oooo eric date3 aaaa bbbb cccc oooo Samm date4 aaaa bbbb cccc oooo e

我正在尝试从以下表格中检索数据:

col1   col2   col3   col4   col5   col6
aaaa   bbbb   cccc   oooo   eric   date1
aasa   bcbb   ccfc   ooho   Samm   date2
aaaa   bbbb   cccc   oooo   eric   date3
aaaa   bbbb   cccc   oooo   Samm   date4
aaaa   bbbb   cccc   oooo   eric   date5
我想知道最近的约会对象是eric,以及属于eric而不是Samm的所有东西

aaaa   bbbb   cccc   oooo   eric   date5
aaaa   bbbb   cccc   oooo   eric   date3
aaaa   bbbb   cccc   oooo   eric   date1

谢谢你的帮助?

我不确定我是否完全理解这里的问题。。。您想先按col5筛选查询,然后按col6中的日期降序排序吗

在这种情况下,查询将是

SELECT * FROM tbl WHERE col5 = 'eric' ORDER BY col6 DESC
或者,您是否希望只拉取第一行,其中包含最新日期,而不管它属于谁,然后再拉取所有属于eric的行?在这种情况下,它将取决于RDMS,下面是针对SQL Server的T-SQL

SELECT TOP 1 * FROM tbl ORDER BY col6 DESC UNION SELECT * FROM tbl WHERE col5 = 'eric'
编辑 我想我明白了。您希望显示最新的行,然后显示表中属于更新为最新的用户的所有其他行

请再试一次,这是针对T-SQL的:

SELECT * FROM tbl WHERE col5 = (SELECT TOP 1 col5 FROM tbl ORDER BY col6 DESC) ORDER BY col6 DESC
或者对于MySQL:

SELECT * FROM tbl WHERE col5 = (SELECT col5 FROM tbl ORDER BY col6 DESC LIMIT 1) ORDER BY col6 DESC

试试这样的

SELECT t.*
FROM table t 
    JOIN (SELECT t2.col5, MAX(col6) as date FROM Table t2 GROUP BY t2.col5) as x 
    ON x.col5 = t.col5

从表中选择*,其中col5=按col6描述的“eric”顺序?我希望这对我来说是那么容易。这是我正在创建的视图,我们只需要最新的数据?例如:从表a中选择col1、col2、col3、col4、col5、col6,其中col6=从表a中选择MAXcol6作为Expr1作为b,其中a.[col6]=[b.col6]将是eric,但它只给了我最后一排。Thanks@larry . . . 你能更好地解释为什么库奇的答案不适合你吗?对我来说,这似乎是你问题的正确答案。请在问题中准确描述你拥有什么和你想要什么。很难猜出你的目标是什么……我们不知道col5中是谁的名字。只希望视图始终显示最新的数据组。谢谢
select *
from tbl
where col5 in (select col5 from tbl where col6 = (select max(col6) from tbl))