⑴ sql 分組
select t1.name,t1.grade,sum(t2.chengji) as chengji from t1,t2 where t1.id=t2.id group by t1.name,t1.grade
⑵ sql 分組編序號
題主你已經把SQL文寫出來了,既然誰時間早排前面,那你把desc去掉就行了。
SELECT*FROM(SELECTROW_NUMBER()OVER(PARTITIONBYSUBSTRING(CONVERT(varchar(100),Time,20),0,11)ORDERBYTime)ASxh,*FROMdbo.表)T
我用的oracle資料庫,sql文如下:
SELECT*FROM(SELECTROW_NUMBER()OVER(PARTITIONBYto_char(t.time,'yyyy-mm-dd')ORDERBYTime)ASxh,t.*FROMtestt)
⑶ sql分組查詢
1
select min(e_name)e_name,dept_id from employee where 工作級別=2 group by dept_id
2
select dept_id, count(*) e_num from employee group by dept_id having count(*)<3
⑷ 請問一下:有一個表,根據它的id分組查詢(分組後的每個id)前4條數據,怎樣寫sql語句
首先,按照id分組後的前4條數據是根據什麼欄位排序取的前4條數據,假設情況如下。表有兩列,一列為id列,一列為排序列,假設為score。即表如下:
id score
1 99
1 98
1 97
1 96
1 95
2 100
2 87
2 96
……
你所要的結果應該是這樣的?取按照課程號分組後,取每個課程號的前4個高分的情況。
select t.id,t.score from (select id,score,rank() over (partition by id order by score desc) ranks from 表) t where t.ranks<=4;
以上語句在比如數分數為第三名的有兩個同學,那麼就會顯示兩條數據,而不是一條。如果沒有這樣的要求,可以使用rownum實現。
⑸ sql 分組 編號
如果有主鍵列,假設主鍵為ID:
select 列名,nid = (select count(1) from 表名 where 列名= a.列名 and id <= a.id)
from 表名 a
如果沒有主鍵列,必須造一個:
select identity(int,1,1) as id ,* into # from 表名
select 列名,nid = (select count(1) from # where 列名= a.列名 and id <= a.id)
from # a
SQL SERVER 2005及以後的版本,可以用roy_88的語法
⑹ SQL分組查詢
SQL Server 2005 下測試通過.
表名為 TestIchxxt
1.連續5天都報道的用戶
SELECT
UID, Server
FROM
TestIchxxt
WHERE
(SELECT
sub.Weekday + ''
FROM
TestIchxxt sub
WHERE
sub.UID = TestIchxxt.UID
AND sub.Server = TestIchxxt.Server
ORDER BY
Weekday
FOR XML PATH('')
) = '12345'
GROUP BY
UID, Server
2.連續3天或4天(不包括5天)報道的用戶
SELECT
UID, Server
FROM
TestIchxxt
WHERE
(SELECT
sub.Weekday + ''
FROM
TestIchxxt sub
WHERE
sub.UID = TestIchxxt.UID
AND sub.Server = TestIchxxt.Server
ORDER BY
Weekday
FOR XML PATH('')
) IN ('1234', '2345', '123', '234', '345')
GROUP BY
UID, Server
⑺ sql要按id分組查詢,就是1到5一組,6到10一組,一直往後,這種sql怎麼寫,id唯一
你拿一個唯一的id分組? 分個錘子分,分組的概念是什麼? 將具有共同特性的數據整合,概念不通,瞎問
⑻ SQL中用Group by 分組 假如有個欄位ID,值1~10,想分成3組(1,3,7)(2,4,5,6)(8,9,10)
select id,sum(case when id in (1,3,7) then 1 else 0 end),
sum(case when id in (2,4,5,6) then 1 else 0 end),
sum(case when id in (8,9,10) then 1 else 0 end)
from tb group by id
這個意思?
-----補充-----
select num,sum(case when id in (1,3,7) then num else 0 end),
sum(case when num in (2,4,5,6) then num else 0 end),
sum(case when num in (8,9,10) then num else 0 end)
from tb group by num
試驗下這個
⑼ 通過SQL語句,分組生成ID。如下圖,已知code(編碼)和level(層級),要求通過sql語句,實現ID的生成;
如果你得到了利用SQL生成這樣的ID通知我下我也看看,用SQL我還真不會
但是如果用前台界面表單提交生成這個ID倒是不難
⑽ sql中的group by id1,id2 是如何根據這兩個欄位進行分組的
按(id1, id2)的實際值進行分組,如:
--------------------
一年級,1班
一年級,2班
二年級,1班
二年級,2班
一年級,3班