Mysql按欄位分組取最大值記錄
要求:獲得按table1_id分組,並且age最大的記錄資訊,即2、3、5條方法一:select * from (select * from table2 order by age desc) as a group by a.table1_id方法二:select a.* from table2 as a where age = (select max(age) from table2 where a.table1_id=table1_id)方法三:select a.* from table2 as a where not exists (select * from table2 where table1_id=a.table1_id and age>a.age)方法四
最近看了下評論都說第一個是錯的,現在我把表結構和資料都發出來。注意:這裡用的是mysql資料庫
我不保證有啥特殊情況會產生啥其他問題,但就我上面的例子來說沒看出什麼毛病。CREATE TABLE `table2` ( `id` int(11) NOT NULL AUTO_INCREMENT, `table1_id` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, `aaa` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; INSERT INTO `table2` (`id`, `table1_id`, `age`, `aaa`) VALUES ('1', '1', '10', 'a1'); INSERT INTO `table2` (`id`, `table1_id`, `age`, `aaa`) VALUES ('2', '1', '20', 'a2'); INSERT INTO `table2` (`id`, `table1_id`, `age`, `aaa`) VALUES ('3', '2', '33', 'a3'); INSERT INTO `table2` (`id`, `table1_id`, `age`, `aaa`) VALUES ('4', '2', '11', 'a4'); INSERT INTO `table2` (`id`, `table1_id`, `age`, `aaa`) VALUES ('5', '3', '55', 'a5'); INSERT INTO `table2` (`id`, `table1_id`, `age`, `aaa`) VALUES ('6', '3', '44', 'a6');
相關推薦
Mysql按欄位分組取最大值記錄
要求:獲得按table1_id分組,並且age最大的記錄資訊,即2、3、5條方法一:select * from (select * from table2 order by age desc) as a group by a.table1_id方法二:select a.* f
MySql按字段分組取最大值記錄 [此博文包含圖片]
from htm 技術 方法 sin gid 最大值 count not 要求:獲得按table1_id分組,並且age最大的記錄信息,即2、3、5條 方法一: select * from (select * from table2 order by age
【mysql技巧】按某一欄位分組取最大(小)值所在行的資料
mysql技巧--按某一欄位分組取最大(小)值所在行的資料,這是mysql資料庫程式設計師經常用到的在處理一些報表資料時候可以活用!那麼獵微網將總結幾種mysql查詢最大值 mysql查詢最小值的方法! mysql表圖如下 具體Php 連線mysql資料庫ph
mysql按某一欄位分組取最大(小)值所在行的資料
表結構指令碼: CREATE TABLE `student_grade` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(64) DEFAULT NULL, `grade` in
MySQL(1)------group by 分組 取最大值
首先表結構 create table sysstudentlibrarypool ( id int auto_increment primary key, score int null, time var
SQL查詢按某欄位排序的最大值
1.建表 -- Create table create table FRUIT ( id VARCHAR2(20), name VARCHAR2(20), class VARCHAR2(20), count VARCHAR2(20),
mysql中如何取得分組中最大值的資料?全網最有效的方法
大家都知道,MySQL有分組查詢子句:group by 。面試官就問你了,不是讓你找到一個表中最大的值,而是讓你找到最大值的整行資料,這個時候簡單的分組是搞不定了。需要用到:inner join 子句 先說下inner join 子句的作用: 可以將一個表與另外一個表進行行資料的匹配。
關於SQL分組取最大值的幾中方式
假如我們有這麼一張表TbOrder具體資料結構如下圖: 如果想要查詢出每個customerId的最近一天的訂單記錄,也就是說要如下結果: 實現語句如下: select * from (select id, orderId, goodsName, orderDate,
SQL(oracle) 取得分組後最大值記錄
select * from (select t.*, row_number() over(partition by 分組欄位 order by 排序欄位 desc ) rn from tablename t ) where rn=1 row_number() OVER (PARTITION BY C
關於MYSQL group by 分組按時間取最大值的實現方法!
類如 有一個帖子的回覆表,posts( id , tid , subject , message , dateline ) , id 為 自動增長欄位, tid為該回復的主題帖子的id(外來鍵關聯), subject 為回覆標題, message 為回覆內容, dateline 為回覆時間,用UNIX 時間
mysql分組排序取最大值所在行,類似hive中row_number() over partition by
如下圖, 計劃實現 :按照 parent_code 分組, 取組中code最大值所在的整條記錄,如紅色部分。(類似hive中: row_number() over(partition by)) select c.* from ( select a.*, (@i := ca
mysql分組排序取最大值所在行的實現方法
序號 sele 最大 logs tro ubi select order by 應該 如下圖, 計劃實現 :按照 parent_code 分組, 取組中code最大值所在的整條記錄,如紅色部分。(類似hive中: row_number() over(partition b
sql查詢表中某個欄位值相同,其他欄位取最大值的記錄
SELECT a.* FROM user a WHERE not EXISTS( select 1 from user where name = a.name and age > a.age ) 對user表進行掃描,編號(或姓名)相同情況下,沒有比前邊年齡大
分組查詢取最大時間記錄的方法Oracle
sql語句: [sql] create table dispatch_result ( dr_id &n
Hive多欄位分組取Top N且保留某列不相同記錄
一、問題背景 1.先吐槽一下中國聯通自己的大資料開放能力平臺提供的計算叢集,Hive用的1.1,Spark用的1.5,Kafka0.8,我的天吶,原始的讓人抓狂,好多已經寫好的模型都要重寫...... 2.資料格式 第一列是device_number,第
mysql 按欄位分隔符分成多行
SELECT a.id,SUBSTRING_INDEX(SUBSTRING_INDEX(a.continuity_classid,',',b.help_topic_id+1),',',-1) xubao
MySQL之表中重複欄位只取第一個值
有時在我們的SQL表中包含很多同名的資料,這樣可以將多維度的資料儲存的一個表中,但是對於查詢會帶來一些麻煩。 如上圖,如果我們只想取每個學校的第一條資料:我們可以使用DISTINCT去重 SQL: select DISTINCT history.school Fro
17.Elasticsearch單欄位支援的最大字元數
在業務系統中,遇到過兩個問題: 問題1:設定為keyword型別的欄位,插入很長的大段內容後,報字元超出異常,無法插入。 問題2:檢索超過ignore_above設定長度的欄位後,無法返回結果。思考:Elasticsearch單欄位支援的最大字元數?設定ignore_abov
mysql 分組查詢最大值優化
今天遇到個問題, mysql 取 表中分組,每項最大一條資料 ,假設表沒有索引,資料一百萬多 網上的寫法 百分之 90 是這樣的 SELECT id,max(t1.a),b FROM (SELECT id,a,b FROM table as t1 ORDER BY t1
48.reduce排序,去重,取最大值
prev col function red logs ngui ras value ber var arr = [2,4,1,-1,9] //取最大值 var maxValue = arr.reduce(function(a,b){ return a>