MySQL按concat值分组,并在每个组中获取第一个ID(UUID)

尼克·苏曼尼兹(Nick Surmanidze)

我已经为此奋斗了几个小时。我正在对消息传递系统进行编码,并且我的表包含以下列:

ID(UUID)| from_user_id(uuid)| to_user_id(uuid)| 主题| 身体| created_at

在收件箱页面中,我需要将结果按subject + from_user_id分组。这是必需的,因为如果主题相同,那么它将是一个单独的对话,并且from_user_id应该与主题串联在一起,以确保如果其他用户将发送具有相同主题的消息,则不会与其他对话合并。

第二件事是,对于每个小组,我需要获得第一条消息以显示为对话封面消息。如果我使用普通ID,但是使用UUID,这将很容易解决问题,因此我不能为它们使用min或max。因此,我需要使用created_at字段来确定哪一行是最后一行。

我尝试了许多不同的方法,但无法获得所需的结果。也许以前有人遇到过类似的问题并有解决方案?

select msg.id, msg.body, msg.created_at, concat(msg.from_user_id, msg.subject) as concat

from messages as msg 

where msg.to_user_id = '8d99eb39-24f8-4dd6-b984-9505cd3eb6b6' 


order by msg.created_at desc limit 10 offset 0
艾伦

基本上,您需要子查询来标识每个线程中的最后一条消息,然后针对该子查询进行选择以从每个最后一个消息中获取详细信息

select * from messages 
 where to_user_id = 'jim'
   and concat(from_user_id, subject, created_at)  in (

    select max(concat(from_user_id, subject, created_at)) 
    from messages
    where to_user_id = 'jim' 
    group by concat(from_user_id, subject))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在mysql中按小时分组,但还包括来自hour + 1的第一个值

来自分类Dev

按每个组的最近日期获取第一个元素

来自分类Dev

将列的所有值替换为第一个值-按ID分组

来自分类Dev

5个一组中的组值,然后从每个组返回第一个值

来自分类Dev

MySQL查找每个“组”的第一个

来自分类Dev

分组并找到R中列组的值的第一个变化

来自分类Dev

按级别从多索引分组中获取第一个索引

来自分类Dev

按SQL中的第一个值将行序列分组

来自分类Dev

Python熊猫:获取组的第一个值

来自分类Dev

按组从递归事件中获取第一个日期

来自分类Dev

具有多列的表中每个组的第一个非空值

来自分类Dev

在每个组中查找第一个有效值

来自分类Dev

按组中的第一个值标准化数据

来自分类Dev

按组组合多行,并在R中将每个不为NA的列中的第一个值保留在列表中

来自分类Dev

如何获取每个id_ope的数据库的第一个值?

来自分类Dev

使用mutate使用R中每个组的第一个值创建一个新列

来自分类Dev

获取(Spark 1.6)组中的第一个非空值

来自分类Dev

在Azure流分析查询中,如何获取组的第一个值?

来自分类Dev

如何确定 First 的使用范围以仅获取组中的第一个值?

来自分类Dev

通过避免R中的组中的第一个值来按组计算平均值

来自分类Dev

如何获取NodeList中每个节点的第一个子节点的值?

来自分类Dev

多个第一个和最后一个非NA值(按组)

来自分类Dev

按组查找第一个/最后一个观察值?

来自分类Dev

如何使用SQL获取列中每个分区的第一个和最后一个值

来自分类Dev

Mysql 按第一个表日期分组并计算第二个表中的不同字段

来自分类Dev

如何从组中的每个其他值计算每个组中的第一个值,以计算随时间的变化?

来自分类Dev

尝试按一个属性分组并获取核心数据中每个组中的实体数

来自分类Dev

按熊猫数据框唯一的第一个值分组 - 返回 numpy 数组

来自分类Dev

按不同的日期选择数据组并获取组中的第一个和最后一个数据

Related 相关文章

  1. 1

    在mysql中按小时分组,但还包括来自hour + 1的第一个值

  2. 2

    按每个组的最近日期获取第一个元素

  3. 3

    将列的所有值替换为第一个值-按ID分组

  4. 4

    5个一组中的组值,然后从每个组返回第一个值

  5. 5

    MySQL查找每个“组”的第一个

  6. 6

    分组并找到R中列组的值的第一个变化

  7. 7

    按级别从多索引分组中获取第一个索引

  8. 8

    按SQL中的第一个值将行序列分组

  9. 9

    Python熊猫:获取组的第一个值

  10. 10

    按组从递归事件中获取第一个日期

  11. 11

    具有多列的表中每个组的第一个非空值

  12. 12

    在每个组中查找第一个有效值

  13. 13

    按组中的第一个值标准化数据

  14. 14

    按组组合多行,并在R中将每个不为NA的列中的第一个值保留在列表中

  15. 15

    如何获取每个id_ope的数据库的第一个值?

  16. 16

    使用mutate使用R中每个组的第一个值创建一个新列

  17. 17

    获取(Spark 1.6)组中的第一个非空值

  18. 18

    在Azure流分析查询中,如何获取组的第一个值?

  19. 19

    如何确定 First 的使用范围以仅获取组中的第一个值?

  20. 20

    通过避免R中的组中的第一个值来按组计算平均值

  21. 21

    如何获取NodeList中每个节点的第一个子节点的值?

  22. 22

    多个第一个和最后一个非NA值(按组)

  23. 23

    按组查找第一个/最后一个观察值?

  24. 24

    如何使用SQL获取列中每个分区的第一个和最后一个值

  25. 25

    Mysql 按第一个表日期分组并计算第二个表中的不同字段

  26. 26

    如何从组中的每个其他值计算每个组中的第一个值,以计算随时间的变化?

  27. 27

    尝试按一个属性分组并获取核心数据中每个组中的实体数

  28. 28

    按熊猫数据框唯一的第一个值分组 - 返回 numpy 数组

  29. 29

    按不同的日期选择数据组并获取组中的第一个和最后一个数据

热门标签

归档