SQL按某個欄位值相同的記錄數從大到小查詢排序

2021-03-20 09:49:08 字數 3168 閱讀 5097

1樓:匿名使用者

-- 解決排序

select a.a, a.b, a.c from table a, (select a, count(a) ordera from table group by a) b

where a.a = b.a

order by b.a desc, a.b-- c 增加序號 需要知道是什麼資料庫

2樓:匿名使用者

這個是可以實現的,但直接實現比較複雜,

可以藉助於輔助的一列來簡單的實現,

1.就是可以加一列,用來記錄與本行中b欄位內容相同的記錄條數,使用update語句將新增加的一列進行更新,2.然後在使用排序,首先對新增加的列進行升序排列,還可以繼續在新增加的列內容相同的基礎上按照別的欄位進行排序,

呵呵,希望能有幫助,^_^

3樓:匿名使用者

很簡單的。select a,b,c from 你的表名 order by a,b,c

4樓:匿名使用者

select a,b,

row_number()over(partition by a order by b) as c

from table

-------------sql 2005 2008 都可以用

5樓:匿名使用者

我試試 select *

from 表

group by a

order by a desc

6樓:桐荏通清雅

你想做的事跟你的假設不符啊

你不就是想按b欄位排序嗎

在b上建立一個索引,如果想從小到大就建立一個升序索引如果想從大到小就建立一個降序索引

然後用一個語句select

*from

表名orderbyb

寫一個sql 查詢一個表中姓名相同的記錄,並把資料按照重複的次數從高到低排列顯示

7樓:匿名使用者

這樣試試

select t1.*

from test t1 left join(select name,count(name) cfrom test

group by name) t2 on t1.name=t2.name

where c>1

order by c desc

8樓:史上最強的豆花

select name ,fcount from

(select name,count(name) as fcount from table group by name) t

order by fcout desc

求sql查詢語句:按某一欄位相同的個數排序,並顯示相同的個數

9樓:匿名使用者

select row_number() over(order by age) order, age, count(*) num

from tb

group by age

sql根據某一個欄位重複只取第一條資料

10樓:

使用分析函式row_number() over (partiion by ... order by ...)來進行分組編號,然後取分組標號值為1的記錄即可。

目前主流的資料庫都有支援分析函式,很好用。

其中,partition by 是指定按哪些欄位進行分組,這些欄位值相同的記錄將在一起編號;order by則是指定在同一組中進行編號時是按照怎樣的順序。

示例(sql server 2005或以上適用):

select s.*

from (

select *, row_number() over (partition by [手機號] order by [店鋪]) as group_idx

from table_name

) swhere s.group_idx = 1

11樓:匿名使用者

用group by 最後一個欄位 用個max()

12樓:發生等將發生

如果僅僅只是查詢出來去從,那麼就用distinctselect distinct 需要去重的列明(允許多列) from table

如果是需要在表中刪除,可以這樣處理

1、建立臨時表,將重複記錄查詢出來去重插入到臨時表2、刪除實表中的重複記錄

3、將臨時表中的記錄插入到實表

處理完成

13樓:匿名使用者

select * into ##tmp_table from 表where 1=2

declare @phoneno int

declare cur cursor forselect 手機號 from 表 group by 手機號open cur

fetch next from cur into @phonenowhile @@fetch_status=0begin

insert into ##tmp_tableselect top 1 from 表 where 手機號=@phoneno

fetch next from cur into @phonenoendselect * from ##tmp_tabledrop table ##tmp_table

14樓:匿名使用者

最簡單的 select distinct (手機號)

15樓:老漢肆

select

temp.id,

temp.device_id,

temp.update_dtm,

temp.test_result

from (

select

t.id,

t.device_id,

t.update_dtm,

t.test_result,

row_number() over(partition by device_id order by t.update_dtm desc) as row_***

from device_info_tbl t ) tempwhere temp.row_*** = '1'

sql如何查詢表中某個欄位值最大的記錄

步驟1.插入前先copy得到表的最大值 2.新的值 要插入的 步驟1的值 1 3.插入 varvnum integer adoquery1.close adoquery1.sql.text select isnull max jrlnum 0 from manager.charge log ecar...

mysql如何更新表中的某個欄位值等於另表的某個欄位

update tb mon verification tk set 新欄位 舊欄位 例如 a表 id name credits 1 aa 11 2 aa 222 3 bb 11 4 bb 222 b表id name credits 1 aa 222 2 bb 222 操作的是a表,能不能有什麼辦法讓...

mysql按某個欄位分組,然後取每組前3條記錄

create table test channelid int,subchanid int insert into test select 1,11 union allselect 1,12 union allselect 1,13 union allselect 1,14 union allsel...