1樓:擺渡浮橋
這種寫法在邏輯上不是總成立的。
分組就是把值相同的行分成一組。以你這個語句為例,只以id分組,每個不同的id值返回一行,顯示name列時就面臨一個問題:如果同一個id值的組內,有一個以上不同的name值,應該顯示哪個name值呢?
正是因為這個原因,你這個語句不受支援。
2樓:野草
select id,max(name) ,count(*) from tablename group by id .
如果不要name 分組 而且如果前面要顯示, 可以用 max min 這樣的函式
為什麼要這樣寫 舉個例子有這兩個資料
id 1 name 張三 id 2 name 李四 如果你按id 分組那麼 你名字要取哪個呢 張三 還是李四
如果取任意一個就這樣寫select id,max(name) ,count(*) from tablename group by id .
如果要兩個都要就要 select id,name ,count(*) from tablename group by id,name
3樓:
name是id的名字嗎?如果是,group by裡面加上name沒什麼問題的,不影響結果
sql中只對某兩個欄位進行分組,但我想得到其他欄位而其他欄位不寫在groupby後,怎麼做
4樓:匿名使用者
如果其他欄位的值都是一樣的,那就用max或者min
如果是數字,並且需要計算,就用聚合函式
如果是其他的,那最好是先把分組的欄位先取出來做一張臨時表再和原表關聯取得其他的值。
5樓:匿名使用者
使用巢狀select語句,外層not in內層,內層使用groupby。
sql中有不想分組的欄位,但是必須用group by怎麼辦 csdn
6樓:鬼谷子教主
去掉group by,
在select欄位中,使用sum(xx) over (partition by groupfield)
sql如何取group by 分組的多條記錄只取最上面的一條!
7樓:匿名使用者
1、建立測試表,create table test_order(userid varchar2(20), ranking varchar2(20), username varchar2(20));
2、插入樣例資料,
insert into test_order values('001','c','aa');
insert into test_order values('001','b','bb');
insert into test_order values('002','a','cc');
3、查詢表中所有記錄,select t.*, rowid from test_order t;
4、編寫sql,獲取所需記錄,
select *
from (select t.*,
row_number() over(partition by userid order by ranking desc) rn
from test_order t)
where rn = 1
8樓:
select userid,ranking,username from table
where userid+ranking in(select userid+max(ranking) from table
group by userid)
sql如何實現分組並select出每組前10個
9樓:匿名使用者
select m, n
from (
select row_number () over (partition by m order by n desc) rn,--以m分組,分組內以n倒序排列求每組中各自的序號
m, n
from table
where ...
) wwhere w.rn <=10;序號小於10order by m, n desc
sql的欄位處理表中欄位為num現在想將其中的
select convert decimal 10,1 round 132451.27456,1 你看看這個式子的效果,結果132451.3正是你所想要的 update table set num convert decimal 10,1 round num,1 有困難hi我 血之暗夜精靈 orac...
sql查詢中如何判斷字串欄位的內容的長度
小丁創業 實現的方法和詳細的操作步驟如下 1 首先,開啟sql查詢器,並連線相應的資料庫表,例如store表,如下圖所示。2 其次,完成上述步驟後,單擊工具欄的 查詢 選項,然後輸入如下 如下圖所示。3 最後,完成上述步驟後,單擊 執行 選項來查詢所需結果,如下圖所示。這樣,以上的問題就解決了。 就...
在資料表中新增欄位的sql語句怎麼寫
資料表中新增一個欄位的標準sql語句寫法為 alter table 表名 add 欄位 欄位型別 default 輸入預設值 null not null 舉例 alter table employee add spbh varchar 20 not null default 0 意思就是在表empl...