 |
|
ขอสอบถามเรื่องการ Group By ใน sql server หน่อยครับ |
|
 |
|
|
 |
 |
|
ถามเรื่องการ Group By หน่อยครับ
ผมต้องการ select row ที่มี seq น้อยที่สุดของแต่ละ id_member ครับ
ถ้า mysql เขียนอย่างงี้อ่ะครับ
Code (SQL)
SELECT
*
FROM
(SELECT
*
FROM
member_pic
ORDER BY seq ASC) c
GROUP BY id_member
แต่ sql server จะต้องเขียนยังไงครับ
ผมลอง
Code (SQL)
SELECT id_member, picture_name, static_name, type, min(id_picture), min(seq)
FROM
member_pic
GROUP BY id_member
มันก็จะติด picture_name, static_name, type ที่ไม่ได้ group by เลย error
มันจะต้องทำยังไงอ่ะครับ หรือใช้วิธีอื่น

Tag : .NET, Ms SQL Server 2012, Web (ASP.NET), C#
|
ประวัติการแก้ไข 2015-02-26 16:49:31
|
 |
 |
 |
 |
Date :
2015-02-26 16:48:38 |
By :
เด็กโง่ |
View :
1069 |
Reply :
6 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แบบนี้พอได้ไหมครับ ใช้ Sub Query
Code (SQL)
SELECT id_member, picture_name, static_name, type,id_picture, seq
FROM member_pic as m1
where id_member=((SELECT TOP 1 id_member
FROM member_pic as m2 where m2.id_member=m1.id_member group by id_member,seq order by seq))
|
 |
 |
 |
 |
Date :
2015-02-26 17:40:46 |
By :
Thaidevelopment.NET |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
DECLARE @member_pic TABLE (id_member int, picture_name varchar(100), static_name varchar(100), type varchar(4), seq int)
INSERT INTO @member_pic
VALUES (3,'3a0','3b0','3t0',1),(3,'3a1','3b1','3t0',2),
(3,'3a2','3b2','3t0',3),(2,'2a0','2b0','2t0',1),
(2,'2a1','2b1','2t0',3),(2,'2a2','2b2','2t0',2),
(1,'1a0','2a0','1t0',2),(1,'1a1','1a1','1t0',1)
SELECT xOne.*, yOne.* FROM @member_pic xOne
CROSS APPLY (SELECT TOP 1 * FROM @member_pic yOne WHERE yOne.id_member= xOne.id_member ORDER BY yOne.seq asc) yOne
WHERE xOne.seq = yOne.seq
คุณลองสังเกตุข้อแตกต่างระหว่างคำสั่งเสีย CROSS APPLY VS Sub Query
1.
2.
...
...
คุณจะได้มากกว่าสิ่งที่คุณต้องการ ฟันธง ชักช้าท้องแน่นอน
|
 |
 |
 |
 |
Date :
2015-02-27 09:04:17 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จาก #NO 5 ข้อสังเกตุ หนึ่งในหลายฯข้อ นั่นคือ
ลาก่อนคำสั่ง Group By
|
 |
 |
 |
 |
Date :
2015-02-27 09:11:51 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|