1. 程式人生 > >mysql查詢先排序再分組查詢出來的資料不是每組最新的資料

mysql查詢先排序再分組查詢出來的資料不是每組最新的資料

mysql版本:5.7

sql如下:

SELECT b.student_id, b.create_time  from (SELECT a.student_id, a.create_time FROM t_cardiopulmonary a ORDER BY a.create_time DESC ) b GROUP BY b.student_id

結果:


student_id為 1的學生 最新時間是2018-05-04 09:22:57

子查詢sql結果集:


竟然是第三條資料,查詢資料得知可以在子查詢臨時表中新增limit要包含查詢出所有資料

修改sql如下:

SELECT b.student_id, b.create_time from (SELECT * FROM t_cardiopulmonary a ORDER BY a.create_time DESC LIMIT 999) b GROUP BY b.student_id

結果:


OK,成功解決問題,還可以用另一個寫法:

select v.student_id, v.create_time from t_cardiopulmonary v 
inner join (select student_id, max(create_time) 'create_time' from t_cardiopulmonary 
group by student_id) c on v.student_id = c.student_id and v.create_time = c.create_time

相關推薦

mysql查詢排序分組查詢出來資料最新資料

mysql版本:5.7sql如下:SELECT b.student_id, b.create_time  from (SELECT a.student_id, a.create_time FROM t_cardiopulmonary a ORDER BY a.create_t

Mysql實現排序分組的需求

在工作中做報表的時候,需要按建立時間排序,然後在對某些欄位進行分組排序。 首先遇到的問題是以前使用oracle資料庫時可以使用分組排序函式直接排序,由於切換到了Mysql資料庫,所以不能使用相同的解決方法。查詢相關資料後得出了一些靈感。oracle分組排序函式如

thinkphp下group by分組後獲取最新資料

$lock = M('locked_record'); $type = 1; $subQuery = $lock->table('sys_locked_record') ->where(array('type'=>$type)) ->order('

查詢mysql 資料庫 如何按年月日分組查詢

以下表為例 按 年下載 按月下載 其中的‘%c’為 月份的數字 除去了 05 中的 0 ; 使用%m 則為05 同理 天就不寫了 以下修飾符 DATE_FORMAT(date,format)  根據format字串格式化date值。下列修飾符

sql語句_自連線_外連線_左連線_子查詢_排序_分組

資料庫 sql語句 分為DDL,DCL,DLL 1),DDL,data define language: 新建一個數據庫 ceate建立 alter修改 drop刪 這三條語句,在下面幾個元件中,都可以用得到 資料庫分為下面幾個元件 a,資料庫,database #如果之前已

MySql下實現排序分組

先排序後分組,發現MySql不同的版本有不同的結果,特此記錄。 舉例:要求在shop表中查詢出各型別商店中價格最高的商品。 --表結構-- create table `shop` ( `id` int (10) PRIMARY KEY, `shop_name` var

MySQL學習(三、分組查詢和多表查詢

一、分組查詢1.MySQL查詢函式    函式的分類:    1,單行函式:將每條資料進行獨立的計算,然後每條資料得到一條結果。    2,多行函式:多條資料同時計算,最終得到一條結果資料。也成為聚集函式、分組函式, 主要用於完成一些統計功能。2.什麼是分組?    針對於班

MYSQL必知必會:分組查詢和子查詢

除了一些彙總函式之外,還可以根據欄位進行分組,分組之後再進行資料的彙總或過濾等其他查詢操作. 下面有張表t5,分別有id,name,subject,score四個欄位. 1.分組過濾. 分組過濾是把一張表內的剩餘的記錄通過某個欄位進行分組,關鍵詞是gr

MySQL全面瓦解10:分組查詢和聚合函式

概述 相信我們經常會遇到這樣的場景:想要了解雙十一天貓購買化妝品的人員中平均消費額度是多少(這可能有利於對商品價格區間的定位);或者不同年齡段的化妝品消費佔比是多少(這可能有助於對商品備貨量的預估)。 這個時候就要用到分組查詢,分組查詢的目的是為了把資料分成多個邏輯組(購買化妝品的人員是一個組,不同年齡段購買

MySQL UNION、排序分組、連線、NULL值處理和正則表示式

UNION SQL UNION 下面的SQL語句從product和orderdetail表中選取所有不同的pCode(只有不同值) SELECT pCode FROM product UNION SELECT pCode FROM orderdetail ORDER BY p

Oracle (05)外來鍵約束.序列.索引.檢視.分頁查詢技術.排序分頁查詢.資料庫表格設計正規化

外來鍵約束 (完整性約束)(fk) ***** 牽扯到兩個表格: 概念: 1. 外來鍵約束, 是存在兩個表格的操作 ! 2. 一張表格我們稱為主表(父表) , 另一張叫做從表(子表) , 定義了外來鍵約束的表格屬於從表 ! 3. 從表的外來鍵欄位, 是在參考主表中的主鍵

MySQL UNION、排序分組、連線、NULL值處理和正則表示式

UNION SQL UNION 下面的SQL語句從product和orderdetail表中選取所有不同的pCode(只有不同值) SELECT pCode FROM product UNION SEL

在entity framework 中使用 LINQ 對錶進行左關聯查詢且group by 分組查詢的示例,並且按小時分組查詢時間段

有表RealTimeDatas的欄位RecordTime儲存了實時時間,格式為DateTime 現在需要以小時進行分組統計每個時間段的最大值,最小值,和平均值 同時,另一個表Devices中有標準溫度溼度最大最小值範圍,需要將這個結果一併關聯到查詢結果中    

1.4.2冒泡法(排序去重)

#include<iostream> using namespace std; int main(){ int a[101],n,i,j,t; cout<<"請輸入共有多少

分組查詢最新資料

CREATE TABLE cy_biz_message ( id INT AUTO_INCREMENT COMMENT '主鍵' PRIMARY KEY, send_id INT

查詢資料庫時 採用 分組查詢並 獲取分組最新的一條資料

使用原生可採用: SELECT * FROM lease_note ln WHERE ln.delete_time IS NULL AND ln.id = ( SELECT lns.id FROM lease_note

sql分組(orderBy、GroupBy)獲取前一(幾)條資料

sql資料庫實現分組並取每組的前1(幾)條資料 測試資料準備工作: 根據某一個欄位分組取最大(小)值所在行的資料: 建立表並且插入資料 CREATE table Test_orderByOrGroupBy_tb(Name nvarchar(50),Val int,Describe n

Reporting Service 分組問題--按頁分組顯示資料資料新起一頁

新增一張報表之後,新建資料集 報表空白處右擊選擇插入矩陣 得到插入的矩陣  新增一個行組,注意看行組那個大括號哦,要新增在大括號內 預設合併單元格了,拆分 可以把多餘的行組外的行刪掉  在新增的行組中插入表 給

MYSQL基礎上機練習題(二)對資料指定列查詢、條件查詢查詢結果排序、聚集函式查詢分組統計查詢

實驗目標:1.掌握指定列或全部列查詢2.掌握按條件查詢3.掌握對查詢結果排序4.掌握使用聚集函式的查詢5.掌握分組統計查詢一、請完成書中實驗7.1,並完成以下問題。1.查詢所有學生的姓名及其出生年份回答以下問題:SQL語句請截圖① 觀察查詢的資料,若年齡不為空是否能求出出生年

關於城市列表按首字母排序分組查詢的一個解決方案(mysql端)java

最近要做一個城市列表,網上找了個城市列表往mysql裡面一匯入,OK!  再把城市id,名稱查出來放到list裡面丟給前端客戶端處理。 後面客戶端找過來了,這樣把資料扔過去他那邊不好處理,要求在後臺根據首字母分組之後再傳過去,然後找了一上午處理方法,總體來說有三種方案: 1