sql條件分組
A. sql多條件分組查詢,求sql語句。
分組是用來聚集匯總的,如求平均、求總和、求最大等
你這個不需要分組,直接排序就可以了
selectname,datefromtableorderbynameasc,datedesc
如果每組要按date的降序排列,也挺簡單
with t1 as (select name, max(date) md from table group by name,
t2 as (select table.name name, table.date date, t1.md from table join t1 on table.name=t1.name
order by t1.md)
select name,date from t2
B. SQL對取值范圍進行分組匯總的幾種辦法
可以用到自定義函數,
create or replace FUNCTION g2(v NUMBER) RETURN INT IS
TYPE it IS TABLE OF INT;
BEGIN
IF v>0 AND v<= 500 THEN
RETURN 1;
ELSIF v>500 AND v<= 1000 THEN
RETURN 2;
ELSIF v>1000 AND v<= 5000 THEN
RETURN 3;
ELSIF v>5000 AND v<= 20000 THEN
RETURN 4;
ELSE
RETURN 0;
END IF;
END g2;
/
select g2(id) f, count(1) cnt from t1 group by g2(id) order by 1;
F CNT
---------- ----------
1 500
2 500
3 4000
4 15000
當然,我們也可以不藉助函數,而用case when語句實現同樣的條件分組,但是語句比較冗長,列名是固定的。不利於閱讀與修改,也不利於代碼重用。
select (case
when id >0 AND id<= 500 THEN 1
when id >500 AND id<= 1000 THEN 2
when id >1000 AND id<= 5000 THEN 3
when id >5000 AND id<= 20000 THEN 4
else 0
end) f,
count(1) cnt from t1 group by
(case
when id >0 AND id<= 500 THEN 1
when id >500 AND id<= 1000 THEN 2
when id >1000 AND id<= 5000 THEN 3
when id >5000 AND id<= 20000 THEN 4
else 0
end)
order by 1;
F CNT
---------- ----------
1 500
2 500
3 4000
4 15000
C. sql多條件分組查詢,求sql語句。
sql多條件分組查詢舉例:
比如有兩張表:
表一:
姓名 分數
——————
李一 2
李二 1
李三 1
張一 3
張二 2
張三 2
……
表二:
姓
——
李
張
王
要查詢表二中的姓的數據對表一進行分組,然後將分數統計出來。
sql語句寫法如下:
SELECT
b. NAME,
sum(a.score) AS 分數
FROM
tb1 a
LEFT JOIN tb2 b ON SUBSTR(a.name FROM 1 FOR 1)= b.`name`
GROUP BY
b. NAME;
這個是Mysql的寫法 Oracle把SubStr函數改一下就可以了。
D. SQL語句中,如何根據條件分組
首先,使用下面語句:
select date, count(date) cnt from user where date is not null group by date
結果:
date cnt
1月 2
2月 2
3月 1
在上面語句基礎上改進,使之與要求結果一致:
select max(case when date = '1月' then cnt else 0 end ) 1月,
max(case when date = '2月' then cnt else 0 end ) 2月,
max(case when date = '3月' then cnt else 0 end ) 3月
from (select date, count(date) cnt from user where date is not null group by date)
E. SQL對查詢結果進行分組(sql分組查詢)
1.打開plsql並轉到登錄頁面。
2.以管啟胡搭理員身份登錄資料庫。
3.登錄後,創建一個新的SQL窗口。
4,輸入,以下語做游句選擇a.file#,a.name,a.bytes/1024/1024CurrentMB,ceilHWM*a.block_size/1024/,a.bytes-HWM*a.block_size/1024/1024releaseMB;
5.單擊「執行」按鈕以執行查詢操作。
6,查詢後,可以悄拿在查詢結果中看到每個資料庫文件的具體路徑。