A. sql 如何將查詢結果按列分組,我想將結果按類別數,總冊數,最高價,最低價分成4列,應該怎麼做
use labery_學號
select category as 類別數, count(*) as 總冊數, max(price) as 最高價, min(price) as 最低價
from book
group by category
B. 在sql資料庫中顯示每個類別(文章類別表)中所發表的文章(文章表)數量,並按照降序排列
CREATE TABLE wenzhangleibie(
類別 varchar(50),
)
CREATE TABLE wenzhang(
文章名 varchar(20),
類別 varchar(50)
)
INSERT INTO wenzhangleibie VALUES('文言文')
INSERT INTO wenzhangleibie VALUES('論文')
INSERT INTO wenzhang VALUES('小草','散文')
INSERT INTO wenzhang VALUES('獵車小子','小說')
INSERT INTO wenzhang VALUES('雨','散文')
INSERT INTO wenzhang VALUES('魚','散文')
INSERT INTO wenzhang VALUES('溫總理','新聞')
INSERT INTO wenzhang VALUES('周總理','新聞')
INSERT INTO wenzhang VALUES('雨','散文')
SELECT a.類別,isnull(COUNT(b.類別),0) 數量 FROM wenzhangleibie as a left join wenzhang as b on(a.類別=b.類別) GROUP BY a.類別 ORDER BY 數量 DESC
C. SQL如果實在 分類按級次展開:
selectt1.分類編碼,t1.分類名稱,t2.分類編碼as分類編碼1,t2.分類名稱as分類名稱1,t3.分類編碼as分類編碼2,t3.分類名稱as分類名稱2
from表名t1
leftjoin表名t2ont2.分類編碼liket1.分類編碼+'%'andt2.級次=2
leftjoin表名t3ont3.分類編碼liket2.分類編碼+'%'andt3.級次=3
wheret1.級次=1
D. sql 按分類級別匯總
很明顯 A,B,C,D都是兩位字元串遞增
--一級:
selecta.*,b.分類名稱from商品表a,分類表bwherecharIndex(b.分類編碼,a.分類編碼,1)=1
andb.分類等級=1
--二級:
selecta.*,b.分類名稱from商品表a,分類表bwherecharIndex(b.分類編碼,a.分類編碼,1)=1
andb.分類等級=2
--三級、四級只需改等級=3,4即可
E. sql分類查詢並將每個類別的所有記錄顯示出來
如根據部門分組 查詢每個部門的平均工資
SQL> SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY DEPTNO;
DEPTNO AVG(SAL)
------ ----------
10 2916.66666
20 2175
30 1566.66666
F. SQL 如何顯示全部類別
selectt2.time,t1.lx,isnull(ksrq,0)ksrq,isnull(bqsr,0)bqsr,isnull(bqzc,0)bqzc,isnull(t2.mqkc,0)mqkc
from(selectdistinctlxfromw2)t1
leftjoin
(selectgetdate()astime,w2.lx,ksrq,bqsr,bqzc,isnull(ksrq,0)+isnull(bqsr,0)-isnull(bqzc,0)asmqkc,
replace(substring(convert(varchar(32),dateadd(month,-1,getdate()),120),1,7),'','-')
fromw1,w2,lxdmbwherew1.lx=w2.lxandw1.lx=lxdmb.lx)t2
ont1.lx=t2.lx
這樣試試呢?
G. sql如何按天和類別分類匯總
selectconvert(varchar(10),a.rq,120),B,isnull(count(*),0)
(select
cast('2014-01-10'asdatetime)+number-1rq
frommaster..spt_valueswheretype='P'andnumberbetween1and(selectdatediff(day,cast('2014-01-10'asdatetime),cast('2014-01-13'asdatetime)))+1)asa
leftjoinTbNamebonconvert(varchar(10),a.rq,120)=convert(char(10),b.A,120)
groupbyconvert(varchar(10),a.rq,120),B
這樣試試
主要是你把這句弄懂了就行,用這個構造一個時間的虛擬列
select
cast('2014-01-10'asdatetime)+number-1rq
frommaster..spt_valueswheretype='P'andnumberbetween1and(selectdatediff(day,cast('2014-01-10'asdatetime),cast('2014-01-13'asdatetime)))+1
H. sql語句排序問題,按照類別,無限級分類
請問什麼叫按照大類排序。。
你可以把typename
改成 寶馬-華晨 寶馬-進口 寶馬-x5 寶馬-x4這樣
然後 order by typename,parentid;
想按typename排序就構造成可以排序的樣子。