楼主: 18770378213
2548 9

对一个group by 的疑问? [推广有奖]

  • 0关注
  • 0粉丝

大专生

21%

还不是VIP/贵宾

-

威望
0
论坛币
180 个
通用积分
0.1569
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
124 点
帖子
28
精华
0
在线时间
34 小时
注册时间
2021-10-14
最后登录
2022-11-19

楼主
18770378213 学生认证  发表于 2022-6-25 15:12:56 来自手机 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
<br>
我有一张表mingdan3,内容如下:
uid time
------ ------------
a 2021-01-02
a 2021-01-01
a 2021-01-07
b 2021-01-02
b 2021-01-03
c 2021-01-02
c 2021-01-08
d 2021-01-03
d 2021-01-04
d 2021-01-09
现在我将time从小到大排序,然后对uid分组。代码为:
SELECT uid, time
FROM
(SELECT * FROM mingdan3 ORDER BY time) AS a
GROUP BY uid
得到结果为:
uid time
------ ------------
a 2021-01-02
b 2021-01-02
c 2021-01-02
d 2021-01-03
我想知道为什么这里得出的uid对应的time是2021-01-02而不是2021-01-01。因为我认为分组后的uid对应的time应该是取最前面的值,由于我已经从小打大排序了,所以应该是2021-01-01才对呀,有人知道原因吗?<br>

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Group Select Elect Order time

已有 1 人评分论坛币 收起 理由
happy_287422301 + 80 鼓励积极发帖讨论

总评分: 论坛币 + 80   查看全部评分

沙发
HappyAndy_Lo 发表于 2022-6-27 13:42:57
窃以为,group by选择的数据,应该是聚集函数,不应该是time列
已有 1 人评分论坛币 收起 理由
happy_287422301 + 60 鼓励积极发帖讨论

总评分: 论坛币 + 60   查看全部评分

藤椅
manyu123546 学生认证  发表于 2022-9-9 16:16:15
用分组排序的函数,取序号为1的就可以取出你想要的结果;
select  uid,time
from(select * ,row_number() over(petition by uid order by time acs) as num )a
where num=1
已有 1 人评分论坛币 收起 理由
happy_287422301 + 60 鼓励积极发帖讨论

总评分: 论坛币 + 60   查看全部评分

板凳
卧雪听雨 发表于 2022-10-21 22:40:44
虽然你提前按照time排序了,但是分组之后的结果数据并不是按照你之前的排序取得
已有 1 人评分论坛币 收起 理由
happy_287422301 + 60 鼓励积极发帖讨论

总评分: 论坛币 + 60   查看全部评分

报纸
hurricanewhu 发表于 2022-10-26 10:33:36
用了group by子句,select中的属性应该是分组属性和聚集函数。你这个SQL语句有点问题。你具体用了什么数据库。
已有 1 人评分论坛币 收起 理由
happy_287422301 + 60 鼓励积极发帖讨论

总评分: 论坛币 + 60   查看全部评分

地板
leexue1991 在职认证  发表于 2022-11-19 19:17:12
group by uid,然后select time,不报错吗?
已有 1 人评分论坛币 收起 理由
happy_287422301 + 60 鼓励积极发帖讨论

总评分: 论坛币 + 60   查看全部评分

7
guzhentiancai 发表于 2023-7-28 15:13:11
建议group by uid ,time。group by是不自动order的
已有 1 人评分论坛币 收起 理由
happy_287422301 + 60 鼓励积极发帖讨论

总评分: 论坛币 + 60   查看全部评分

8
qigebazi 发表于 2024-4-22 11:38:43 来自手机
leexue1991 发表于 2022-11-19 19:17
group by uid,然后select time,不报错吗?
对啊,要么全选,要么后边聚合~
已有 1 人评分论坛币 收起 理由
happy_287422301 + 60 鼓励积极发帖讨论

总评分: 论坛币 + 60   查看全部评分

9
tiesuoqiao 发表于 2024-5-31 09:38:45
SELECT uid, MIN(time)
FROM mingdan3
GROUP BY uid


已有 1 人评分论坛币 收起 理由
happy_287422301 + 60 鼓励积极发帖讨论

总评分: 论坛币 + 60   查看全部评分

10
happy_287422301 在职认证  发表于 2024-6-10 16:24:35
虽然作者没有及时回复设置最佳答案,但我们对参与讨论的朋友都给与一定的论坛币奖励

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 14:55