Mysql之group by 和order by 一起用時的排序問題
業務需求,需要查詢表裡不同分類下的order最大的記錄。
查看錶中的記錄:
SELECT id,tid,`order`, FROM_UNIXTIME(yestime) FROM tfen
WHERE tid IN(7512, 7514)
ORDER BY `order` DESC ;
結果如下:
排序的sql語句:
SELECT id,tid,`order`, FROM_UNIXTIME(yestime) FROM tfen
WHERE tid IN(7512, 7514)
GROUP BY tid
ORDER BY `order` DESC ;
返回的結果:
不是自己想要的結果。
執行下面的sql:
SELECT id,tid,`order`,FROM_UNIXTIME(yestime) FROM (
SELECT * FROM tfen WHERE tid IN(7512, 7514) ORDER BY `order` DESC
) AS t
GROUP BY tid;
返回的結果:
這兩條才是最終的結果。
相關推薦
Mysql之group by 和order by 一起用時的排序問題
業務需求,需要查詢表裡不同分類下的order最大的記錄。 查看錶中的記錄: SELECT id,tid,`order`, FROM_UNIXTIME(yestime) FROM tfen WHERE tid IN(7512, 7514) ORDER BY `order` DESC ;
GROUP BY 和 ORDER BY一起使用時,要註意的問題!
聚合 pan csdn under line order 註意 net asp 轉:http://blog.csdn.net/haiross/article/details/38897835 註意:ORDER BY 子句中的列必須包含在聚合函數或 GROUP BY 子句中。
mysql中group by和order by同時使用無效的替代方案
前言 最近一年由於工作需要大部分使用的都是NoSql資料庫,對關係型資料庫感覺越來越陌生,一個由group by和order by 引發的血案由此而生。在此做個記錄,以備不時之需。 需求(得到所有barCode的最新的一條資料) 首先,看一下整體的表結構。
在mysql中使用group by和order by取每個分組中日期最大一行資料
轉載自:https://blog.csdn.net/shiyong1949/article/details/78482737 自己實際使用的時候group by 單列欄位 兩種方式獲取資料一致,博主情況未知,有待驗證多group by 在mysql中使用group by進行分組後取某一列的最大
mysql 用 group by 和 order by同時使用
首先,這是不可能實現的 mysql的查詢的順序 select -> from-> where->group by->having->order by. 但mysql的解析器執行順序: from-> where->group by->having->
關於Mysql使用group by和order by函式
這兩個函式在sql中使用可以說最頻繁的,通過網上看資料和自己寫sql測試發現資料裡說的和測試結果不同,網上有些資料說group by、order by後面的列必須出現在select查詢語句中,還有order by的列必須是group by裡的,這並不準確。而且在Mysql裡測發現group
MySQL——關於MySQL分組查詢group by和order by獲取最新時間內容的方法
假如現在有一張表table,如下: 如果我們想查詢出來zhang和wang最新日期的記錄 如果我們直接使用: SELECT * FROM table GROUP BY name ORDER BY
淺談group by和order by的用法和區別
前一段時間的面試,問道這個問題,不太清楚了,感覺有必要來總結一下。話不多說,直接開始吧! 一、order by的用法 使用order by,一般是用來,依照查詢結果的某一列(或多列)屬性,進行排序(升序:ASC;降序:DESC;預設為升序)。 當排序列含空值時: ASC:
sql (2)——group by 和 order by
group by() 一般和 count(), sum(), avg() 三種聚合函式一起使用才有意義,而且可以多欄位使用。例如: SELECT Customer, SUM(OrderPrice) FROM Orders GROUP BY Customer order by() 列 AS
mysql 聯合索引> 和 order by 不走 索引 慎用
我有一個聯合索引idx_css(createddate,storeId,site) EXPLAIN SELECT * FROM statis_domain AS a WHERE a.`createddate` > '2015-04-23' AND a.`store
group by和order by的用法和區別
一、order by的用法 使用order by,一般是用來,依照查詢結果的某一列(或多列)屬性,進行排序(升序:ASC;降序:DESC;預設為升序)。 當排序列含空值時: ASC:排序列為空值的元組最後顯示。 DESC:排序列為空值的元組最先顯示。 為了好記憶,我
mysql之資料型別和select語句(group by、 limit)
mysql之資料型別的理解 mysql資料型別之整形 mysql資料型別之浮點型 mysql資料型別之日期時間型 mysql資料型別之字元型 刪除記錄(單表刪除) delete from 表單 where id=5 select
mysql group by 與order by 一起使用
我需要把資料分組排序,於是就想到先group by 然後 order by,可是執行的時候報錯 於是查資料發現group by 與order by 一起使用是要遵守一定原則的: 1.order by 的列,必須是出現在group by 子句裡的列 2.order
MySQL之——GROUP BY分組取欄位最大值
出處:http://blog.csdn.net/l1028386804/article/details/54657412 假設有一個業務場景,需要查詢使用者登入記錄資訊,其中表結構如下: [sql] view plain cop
Linux下mysql進行group by ,order by查詢報錯
select userId,count(movieId) from ratings group by userId order by userId 報錯:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause
mysql分組取每組前幾條記錄(排名) 附group by與order by的研究
select a.* from tb a where val = (select max(val) from tb where name = a.name) order by a.name--方法2:select a.* from tb a where not exists(select 1 from tb
SQL查詢語句where,group by,having,order by的執行順序和編寫順序
當一個查詢語句同時出現了where,group by,having,order by的時候,執行順序和編寫順序。 一、使用count(列名)當某列出現null值的時候,count(*)仍然會計算,但是count(列名)不會。 二、資料分組(group by ): sel
union all和order by一起使用出問題
select * from (select * from (select zxbz,count(*)rs from dc_jhmy where 1=1 group by zxbz order by rs desc union all select 'hj'
mysql查詢報錯: ORDER BY clause is not in GROUP BY..this is incompatible with sql_mode=only_full_group_by
在用mysql執行如下查詢的時候: select * from `sys_user_group` group by `GROUP_ID` 報錯資訊如下: [Err] 1055 - Expr