【发布时间】:2021-10-06 08:47:34
【问题描述】:
我有一个如下所示的 MySQL 表:
| user_id | other_id | date |
|---|---|---|
| 123456789 | 123 | date1 |
| 213454678 | 123 | date2 |
这里,user_id 是一个多键,并且在某些条目中重复出现。日期与此任务无关。 我试过这个查询:
select user_id, count(user_id) as count from exp_pixel_data group by user_id;
这又回来了
| user_id | count |
|---|---|
| 123324345456456576587 | 7 |
| 453545435343455343453 | 3 |
| 777676766776675654454 | 2 |
| 345565664545665654645 | 1 |
这个结果告诉我 user_id 在表中出现的频率。这可能是一个好的开始,但现在我需要这个计数在最后一个查询的结果中出现的频率。那么问题来了,表中有多少个user_ids出现了7次呢? 我需要一个返回如下内容的 SQL 查询:
| count | times_ocurring |
|---|---|
| 1 | 123 |
| 2 | 100 |
| 3 | 2 |
等等。
这表示主表中有123次user_ids出现1次,100次user_ids出现2次,2次user_ids出现3次。
【问题讨论】:
-
能否添加您的查询?这样,我们就有了一个起点,可以为您提供来自的建议
-
当然可以。我的查询是
mysql> select user_id , count(user_id) from exp_pixel_data group by user_id;,它只返回 user_id | count(user_id) 所以所有 user_ids 的出现。 -
查询产生了预期的结果,但它与您提供的数据不匹配。如果这不是您想要的,您需要描述您的实际需求。考虑到特定数据,您能否在问题中添加一些最少的数据以及预期的确切结果?
-
我会等待描述。对不起。没有足够的细节来猜测。
-
请分享更多细节,并请通过编辑添加全部澄清您的问题,而不是评论部分