我想把表A变成表B,就是把字段3 根据字段1求平均数 怎么写SQL语句啊
求高手帮忙
-------------------------------
表A字段1 字段2 字段3
A A1 150
A A2 150
A A3 150
B B1 120
B B2 120
----------------------------------
表B字段1 字段2 字段3
A A1 50
A A2 50
A A3 50
B B1 60
B B2 60
--------------------------------------------------
求高手帮忙
-------------------------------
表A字段1 字段2 字段3
A A1 150
A A2 150
A A3 150
B B1 120
B B2 120
----------------------------------
表B字段1 字段2 字段3
A A1 50
A A2 50
A A3 50
B B1 60
B B2 60
--------------------------------------------------
字段1 ,
字段2 ,
(SELECT AVG(字段3) FROM TB WHERE 字段1=T.字段1)字段3
FROM TB T
*************************************
* T-MAC 小编 *
* -->努力成长中 *
* -->梦想DBA *
*************************************
*/
if OBJECT_ID('表A') is not null
drop table 表A
go
create table 表A (字段1 varchar(10) ,字段2 varchar(10),字段3 int)
insert 表A select
'A', 'A1', 150 union select
'A', 'A2', 150 union select
'A', 'A3', 150 union select
'B', 'B1', 120 union select
'B', 'B2', 120
goselect distinct 字段1,字段3/(select COUNT(*) from 表A where a.字段1=字段1) as [AVG] from 表A a
*************************************
* T-MAC 小编 *
* -->努力成长中 *
* -->梦想DBA *
*************************************
*/
if OBJECT_ID('表A') is not null
drop table 表A
go
create table 表A (字段1 varchar(10) ,字段2 varchar(10),字段3 int)
insert 表A select
'A', 'A1', 150 union select
'A', 'A2', 150 union select
'A', 'A3', 150 union select
'B', 'B1', 120 union select
'B', 'B2', 120
goselect distinct 字段1,字段2,字段3/(select COUNT(*) from 表A where a.字段1=字段1) as [AVG] from 表A a
/*
字段1 字段2 AVG
---------- ---------- -----------
A A1 50
A A2 50
A A3 50
B B1 60
B B2 60*/
insert A select
'A', 'A1', 150 union select
'A', 'A2', 150 union select
'A', 'A3', 150 union select
'B', 'B1', 120 union select
'B', 'B2', 120
goselect 字段1 ,字段2 , 字段3 = 字段3 / (select count(1) from a where 字段1 = t.字段1) from a tdrop table a/*
字段1 字段2 字段3
---------- ---------- -----------
A A1 50
A A2 50
A A3 50
B B1 60
B B2 60(所影响的行数为 5 行)
*/