當前位置:首頁 » 編程語言 » sql正負數分組
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql正負數分組

發布時間: 2022-12-27 10:56:02

sql查詢如何轉換正負數

select 編號,-count(編號) as 列名 from 表 group by 編號

count里邊的編號可以用星號來代替,不用寫明是具體的哪個欄位

以上,希望對你有所幫助!

Ⅱ 在SQL中如何把一列的正負數篩選出來各成一列

select n_name,
case when n_number>=0 then n_number else 0 end as n_numberAdd,
case when n_number<0 then n_number else 0 end as n_numberdec
from table

Ⅲ 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

Ⅳ SQL 分組數據

連載的上一篇文章,我們講到通過 SQL 聚合函數可以匯總數據,比如對行進行計數,計算和與平均數,獲取最大值和最小值。

但目前為止,我們的匯總都是正對所有行或匹配 WHERE 子句的數據上進行的。比如返回供應商 DLL01 提供的產品數目:

運行結果:

那如果我們想要返回每個供應商提供的產品數目呢?這就需要用到分組聚合了。使用分組可以將數據分為多個邏輯組,然後對每個組進行聚合計算。

分組的創建使用 SELECT 語句中的 GROUP BY 子句,比如下面的 SQL 返回每個供應商提供的產品數目:

運行結果:

上述 SELECT 語句返回兩個列, vend_id 為供應商 ID,是分組欄位; num_prods 為計算欄位,使用 count(*) 聚合而來。 GROUP BY 子句告訴 DBMS 按 vend_id 排序並分組數據,然後對每個分組而不是整個數據集進行聚合。

除了使用 GROUP BY 分組數據外, SQL 還允許過濾分組,規定包含哪些分組,排除哪些分組。比如,我們只想列出供應產品數目在 2 種以上的供應商及其供應產品的數目。

這里有個過濾條件: 供應產品數目大於 2 ,條件中的 供應產品數目 是針對分組後進行聚合產生的計算欄位,因此無法使用 WHERE 子句。 WHERE 子句過濾時指定的是行,而不是分組。

為此, SQL 提供了 HAVING 子句來過濾分組,並且 HAVING 支持所有 WHERE 操作符。下面,我們來完成供應產品數目在 2 種以上的供應商及其供應產品的數目。

運行結果:

跟前面的結果相比,供應產品數目等於 2 的供應商信息就不見啦~

關於 WHERE 子句和 HAVING 子句的區別,我們可以再通過一個案例理解一下。下面的 SQL 檢索具有兩個或以上產品且其價格大於等於 4 的供應商。

其中產品表如下:

SQL 語句如下:

運行結果:

截止目前,我們已經學了不少的 SELECT 子句,下面小魚針對目前我們已經學習的 SELECT 子句來總結一下他們在 SELECT 語句中的先後順序。

表中子句的排列順序即為它們在 SELECT 語句中依次出現的次序:

還是上面的例子,檢索具有兩個或以上產品且其價格大於等於 4 的供應商和其供應的產品數目,不過檢索檢索需要按照產品數目升序排列。

運行結果:

本節,我們學習了使用 GROUP BY 子句對多組數據進行匯總計算,並返回每個分組的結果。並實踐了如何使用 HAVING 子句過濾分組。

Ⅳ sql語句實現分組統計

方法和詳細的操作步驟如下:

1、第一步,創建一個測試表,詳細代碼見下圖,轉到下面的步驟。

Ⅵ SQL顯示正負數問題,請求SQL高手幫助

可以寫 case when 商品編號 like 'XSCKTH%' then 銷售金額*-1 else 銷售金額 end

Ⅶ SQL數據分組匯總

你沒說什麼資料庫,,,

提供sqlserver的方法


SELECTLEFT(c,CHARINDEX('-',c)-1),sum(d)
from表
groupbyLEFT(c,CHARINDEX('-',c)-1)

Ⅷ SQL對查詢結果進行分組

如果你的UID是int型先進行轉換,然後截取前兩位,在用聚合函數獲取總數,進行分組查詢就好了,語句如下(把表名替換下可以直接用):select SUBSTRING(CONVERT(varchar(50),UID),0,3),COUNT(*) from 表 group by SUBSTRING(CONVERT(varchar(50),UID),0,3)

Ⅸ SQL數據分組統計問題

SELECT規格,批號,色別,等級,
SUM(毛重)AS毛重,SUM(凈重)AS凈重,SUM(筒子)AS筒子,SUM(箱數)AS箱數
FROMTGROUPBY規格,批號,色別,等級

這里你提供的數據,等級欄位值都是A,所以不會造成錯誤,不然等級也是要加入分組的。