① 求sql語句查出一行數據中每列的百分比
1、若針對每行求百分比:
select SA/TotelTime ,SB/TotelTime ,SC/TotelTime ,SD/TotelTime ,SE/TotelTime from 表名
2、若是對總計後的值求百分比:
select sum(SA)/sum(TotelTime) ,sum(SB)/sum(TotelTime) ,sum(SC)/sum(TotelTime) ,sum(SD)/sum(TotelTime) ,sum(SE)/sum(TotelTime) from 表名
3、當然,以上都是以小數形式顯示結果,若要以百分比形式顯示結果:乘以100,並保留兩位小數,然後加上「%」即可。
如:round((SA/TotelTime)*100,2) & "%"
② 求一個sql語句,查詢某個值在數據集中的佔比情況
寫一個sql語句恐怕不行。
應當先寫一段sql語句,計算出links欄位的總和。
然後再寫一段sql語句,以links欄位的每一個值除以links欄位的總和,這樣就能得出links欄位每個值在該欄位總和里的佔比。
這種情況下,就要寫兩端sql語句。
③ sql 查詢某項比例
那超過50%的用戶最多就只有一個?
selecta.商戶名稱
from
(select商戶名稱,count(*)count1from交易記錄表where交易時間between'2014-01-01'and'2014-01-31'groupby商戶名稱)a,
(selectcount(*)count2from交易記錄表where交易時間between'2014-01-01'and'2014-01-31')b
wherea.count1/b.count2>0.5
時間部分,你自己改寫一下,我就隨便寫了個時間
④ 用SQL求百分比,同一列數據
select name,str((case (select isnull(sum(cost),0) from table1) when 0 then 0 else cost/(select isnull(sum(cost),0) from table1) end)*100,10,2)+'%' as bfb from table1
以上sql語句較長,解釋一下:
使用case...when...end,是為了避免合計cost為0的話,出現無法除0的錯誤;結果值乘以100是為了配合百分比格式;使用str(...,10,2)函數是把計算出來的數字值轉換成兩位小數精度的文本串;最後,在結果後加上一個百分號,效果就完整了。
以上語句在sqlserver資料庫中測試通過。
⑤ SQL統計每一列的數據要怎麼寫
首先確定你要統計的列名稱,比如統計相同JOB的數量,格式為:
id job type
1 cleck a
2 cleck b
3 jone c
4 attont c
5 jone f
select id,type,count(*) 工作種類數量 from 表名 group by job,type;
id job type 工作種類數量
1 cleck a 2
2 cleck b 2
3 jone c 2
4 attont d 1
5 jone e 2
⑥ sql 怎麼用一個語句求出同一列的某一個欄位在整個列的百分比
可考慮使用窗口函數,計算各行某欄位數值占整列的百分比:
selectratio_to_report(sal)over()fromemp;
網路你妹,我不修改了,最好把我回答刪掉。
以上。
⑦ SQL語句選取某個區間的記錄怎麼編寫
例如:寫一個SQL語句,取出表S中第21~30記錄(SQL server,以自動增長的ID作為主鍵,ID可能不連續)
方法一:
Select TOp10 * from S
Where ID>(Select MAX(ID) from (Select Top20 ID from S ) as S)
方法二:
select Top10 * from S where ID NOT IN(select Top20 ID from S)
(7)sql中如何書寫一列數據各區間佔比擴展閱讀
SQL SELECT 語句用於從表中選取數據。
結果被存儲在一個結果表中(稱為結果集)。
SQL SELECT 語法
SELECT 列名稱 FROM 表名稱
以及:
SELECT * FROM 表名稱
注釋:SQL 語句對大小寫不敏感。SELECT 等效於 select。
SQL SELECT 實例:
如需獲取名為 "LastName" 和 "FirstName" 的列的內容(從名為 "Persons" 的資料庫表),請使用類似這樣的 SELECT 語句:
SELECT LastName,FirstName FROM Persons
⑧ 用sql語句如何將兩張表中的一列數據進行比對。
你好!
先獲取不重復的ID,即x、y表的不重復並集,觀察x、y表結構類似,通過union進行排重即可。
使用第一步獲取的數據進行左鏈接x、y表的擴展表(第3步)。
分別對x、y表進行分組並合計,針對圖片中y表中ID為A的記錄出現多次,最後顯示為ID為A的盤點數量為2,這樣的數據進行處理,以方便最後顯示。
通過(庫存數-盤點數)得到比對欄位值。
SELECT
t.ID,
IFNULL(t.`庫存數量`,0)`庫存數量`,
IFNULL(t.`盤點數量`,0)`盤點數量`,
(
IFNULL(t.`庫存數量`,0)-IFNULL(t.`盤點數量`,0)
)`比對`
FROM
(
SELECT
a.IDID,
p1.`庫存數量`,
p2.`盤點數量`
FROM
(
SELECT
ID
FROM
x
UNION
SELECT
ID
FROM
y
)a
LEFTJOIN(
SELECT
ID,
sum(`庫存數量`)`庫存數量`
FROM
x
GROUPBY
ID
)p1ONa.id=p1.id
LEFTJOIN(
SELECT
ID,
sum(`盤點數量`)`盤點數量`
FROM
y
GROUPBY
ID
)p2ONa.id=p2.id
)t
ORDERBY
ID
希望對你有幫助!
⑨ sql 求佔比
select
t1.province,
cast(count(1)*100/(selectcount(1)fromprovince)asvarchar(10))+'%'
from
provincet1
groupby
t1.province