当前位置: 首页 > 面试题库 >

GROUP BY和ORDER BY

乐寒
2023-03-14
问题内容

SELECT * FROM users_pm_in
WHERE uID = ‘1’
GROUP BY dialog_id
ORDER BY date DESC

无法正常工作。我要执行的操作是分组到dialog_id。然后,所有具有dialog_id的对象均按日期排序,然后按日期将它们全部排序。

所以:

id | uID | bID | msg     | dialog_id | date
--------------------------------------------------
 1 | 1   | 2   | Hello   | 1         | 1289158631
 2 | 2   | 1   | Hi?     | 1         | 1289158691
 3 | 1   | 2   | Wazzaa? | 1         | 1289158931

dialog_id的两个条目为1(使用GROUP
BY)。好的。然后,它应按具有最新日期的两个条目(组内)之一进行排序(按日期desc排序)。该案例是日期为1289158931的案例。

如何才能做到这一点?

更新:

我想出来的是:

while($row = mysql_fetch_array($query)){
    echo $row["msg"] // it should echo "Wazzaa?"
    echo $row["id"] // it should give me id 3
}

它为我提供了每个dialog_id的最后一个,这就是为什么我希望将其分组。


问题答案:

使用:

  SELECT a.id, 
         a.msg
    FROM USERS_PM a
   WHERE a.dialog_id = 1
     AND 1 IN (a.uid, a.bid)
ORDER BY a.date DESC
   LIMIT 1

…或者:

SELECT a.id, 
       a.msg
  FROM USERS_PM a
  JOIN (SELECT t.dialog_id,
               MAX(t.date) AS max_date
          FROM USERS_PM t
      GROUP BY t.dialog_id) b ON b.dialog_id = a.dialog_id
                             AND b.max_date = a.date
 WHERE a.dialog_id = 1
   AND 1 IN (a.uid, a.bid)


 类似资料:
  • 问题内容: 我有一个这样的数据框说 和会话和收入的每个值代表了一种类型的,我要统计每个种类的数量表示的数量和的为1。 在无法输出所需结果后,我发现简单的调用函数。 我怎样才能做到这一点? 问题答案: 您似乎想一次按几列分组: 应该给你你想要的

  • 我试图使用querydsl-collections,但未能编写简单的groupBy表达式。以下是我的尝试: 但当我试着运行它的时候。我得到:

  • 我必须根据以下col1、col2和loc的数据进行分组,并计算col3中的项数。此外,还应考虑开始和结束日期,即日期应在2021 1月1日至2021 1月31日之间。最终结果应显示在col4中。 数据 预期输出

  • 任何groupby操作都涉及对原始对象的以下操作之一。 他们是 - Splitting对象 Applying功能 Combining结果 在许多情况下,我们将数据分成几组,并在每个子集上应用一些功能。 在应用功能中,我们可以执行以下操作 - Aggregation - 计算摘要统计 Transformation - 执行某些特定于组的操作 Filtration - 在某些条件下丢弃数据 现在让我们

  • groupBy 将源 Observable 分解为多个子 Observable,并且每个子 Observable 将源 Observable 中“相似”的元素发送出来 groupBy 操作符将源 Observable 分解为多个子 Observable,然后将这些子 Observable 发送出来。 它会将元素通过某个键进行分组,然后将分组后的元素序列以 Observable 的形态发送出来。

  • Creates a new ObjectLikeSequence comprising the elements in this one, grouped together according to some key. The value associated with each key in the resulting object-like sequence is an array conta

  • groupBy 函数签名: groupBy(keySelector: Function, elementSelector: Function): Observable 基于提供的值分组成多个 observables 示例 示例 1: 根据属性分组 ( StackBlitz | jsBin | jsFiddle ) // RxJS v6+ import { from } from 'rxjs'; i

  • 问题内容: 我正在使用angular-filter中的 groupBy 按对象的date属性对对象数组进行分组。 产生以下内容: 如何从最近的日期开始颠倒顺序?当我打印到控制台时,以我想要的顺序打印阵列: 我还编写了一个自定义过滤器来反转groupBy之后的顺序: 我已经这样申请了: 问题答案: 最近有同样的问题。创建一个对象,但需要一个数组,因此涉及一些时髦。我最终从他们的问题页面直接得到了答案