Mysql sql中带有having子句和min函数的GROUP BY
在上表中,我展示了我得到的结果。现在我想要我的结果,比如shareduser应该是129,shareddatetime是属性列上GROUPBY的最小值。 我已经运行了下面的查询Mysql sql中带有having子句和min函数的GROUP BY,mysql,Mysql,在上表中,我展示了我得到的结果。现在我想要我的结果,比如shareduser应该是129,shareddatetime是属性列上GROUPBY的最小值。 我已经运行了下面的查询 sharedid property shareduser shareddatetime 111 32 129 2015-02-02 13:30:44 117 33 129 2015-02-02 13:41:21 119
sharedid property shareduser shareddatetime
111 32 129 2015-02-02 13:30:44
117 33 129 2015-02-02 13:41:21
119 33 129 2015-02-02 13:40:44
结果:
SELECT * FROM sharing WHERE `shareduser` = 129 GROUP BY property HAVING min(shareddatetime)
但是min()没有提供预期的输出。
我想要这样的结果
sharedid property shareduser shareddatetime
111 32 129 2015-02-02 13:30:44
117 33 129 2015-02-02 13:41:21
从共享中选择*其中shareduser=129按SharedStatime asc订购
这应该可以
对于小组,我忘了你可以使用:
按属性asc排序,SharedStatime asc从共享中选择*其中shareduser=129按SharedStatime asc排序
这应该可以
对于小组,我忘了你可以使用:
按属性asc排序,SharedStatime asc从共享中选择*其中shareduser=129按SharedStatime asc排序
这应该可以
对于小组,我忘了你可以使用:
按属性asc排序,SharedStatime asc从共享中选择*其中shareduser=129按SharedStatime asc排序
这应该可以
对于小组,我忘了你可以使用:
按属性asc排序,SharedStatime asc
您的having子句不正确,请检查标准SQL语法。
您可以使用子查询来获取具有minimun值的属性
sharedid property shareduser shareddatetime
111 32 129 2015-02-02 13:30:44
119 33 129 2015-02-02 13:40:44
(使用Kalid模式)您的having子句不正确,请检查标准SQL语法。
您可以使用子查询来获取具有minimun值的属性
sharedid property shareduser shareddatetime
111 32 129 2015-02-02 13:30:44
119 33 129 2015-02-02 13:40:44
(使用Kalid模式)您的having子句不正确,请检查标准SQL语法。
您可以使用子查询来获取具有minimun值的属性
sharedid property shareduser shareddatetime
111 32 129 2015-02-02 13:30:44
119 33 129 2015-02-02 13:40:44
(使用Kalid模式)您的having子句不正确,请检查标准SQL语法。
您可以使用子查询来获取具有minimun值的属性
sharedid property shareduser shareddatetime
111 32 129 2015-02-02 13:30:44
119 33 129 2015-02-02 13:40:44
(使用Kalid模式)您可以使用自连接来获得所需的结果
SELECT * FROM sharing WHERE `shareduser` = 129
and `shareddatetime` = ( select min( `shareddatetime` )
from sharing s2
where s2.`shareduser` = sharing.`shareduser`
and s2.`property` = sharing.`property` )
您可以使用自联接来获得所需的结果
SELECT * FROM sharing WHERE `shareduser` = 129
and `shareddatetime` = ( select min( `shareddatetime` )
from sharing s2
where s2.`shareduser` = sharing.`shareduser`
and s2.`property` = sharing.`property` )
您可以使用自联接来获得所需的结果
SELECT * FROM sharing WHERE `shareduser` = 129
and `shareddatetime` = ( select min( `shareddatetime` )
from sharing s2
where s2.`shareduser` = sharing.`shareduser`
and s2.`property` = sharing.`property` )
您可以使用自联接来获得所需的结果
SELECT * FROM sharing WHERE `shareduser` = 129
and `shareddatetime` = ( select min( `shareddatetime` )
from sharing s2
where s2.`shareduser` = sharing.`shareduser`
and s2.`property` = sharing.`property` )
MIN
并不像您想象的那样,它只是为分组数据中的列选择最低的值——在本例中,您实际上并没有选择它;您需要选择MIN(shareddatetime)、sharing.*
或类似选项HAVING MIN(shareddatetime)
基本上表示必须有一个MIN(shareddatetime)
。。。当然有。MIN
并没有做你认为它做的事情,它只是为分组数据中的列选择了最低的值——在本例中,你并没有真正选择它;您需要选择MIN(shareddatetime)、sharing.*
或类似选项HAVING MIN(shareddatetime)
基本上表示必须有一个MIN(shareddatetime)
。。。当然有。MIN
并没有做你认为它做的事情,它只是为分组数据中的列选择了最低的值——在本例中,你并没有真正选择它;您需要选择MIN(shareddatetime)、sharing.*
或类似选项HAVING MIN(shareddatetime)
基本上表示必须有一个MIN(shareddatetime)
。。。当然有。MIN
并没有做你认为它做的事情,它只是为分组数据中的列选择了最低的值——在本例中,你并没有真正选择它;您需要选择MIN(shareddatetime)、sharing.*
或类似选项HAVING MIN(shareddatetime)
基本上表示必须有一个MIN(shareddatetime)
。。。当然有。asc=最低描述=最高描述=最低描述=最高描述=最低描述=最高描述=最低描述=最高描述