Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > ขอสอบถามเรื่องการ Group By ใน sql server หน่อยครับ



 

ขอสอบถามเรื่องการ Group By ใน sql server หน่อยครับ

 



Topic : 114715



โพสกระทู้ ( 275 )
บทความ ( 0 )



สถานะออฟไลน์




ถามเรื่องการ 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
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-02-26 16:48:38 By : เด็กโง่ View : 1048 Reply : 6
 

 

No. 1

Guest


คุณดูดีดีนะครับ MySQL RDBMS Aggregate Function

ข้อมูลตัวอย่างแต่จริงอ้างอิง พอสังเขป

xTable
Code
Field1 Field 2 x 1 x 2 y 2 z 1


Code (SQL)
Select * From xTable Group By Field 1



ผลลัพธ์ 3 ระเบียนจากทั้งหมด 4 ระเบียน

Code
Field1 Field2 x 1 หรือ 2 (ไม่รู้ว่ามันจะเลือกเอาอันไหนมา) y 2 z 1




หนาวไหม MySQL






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-26 17:19:42 By : หน้าฮี
 


 

No. 2



โพสกระทู้ ( 275 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : หน้าฮี เมื่อวันที่ 2015-02-26 17:19:42
รายละเอียดของการตอบ ::
ใช่ครับ มันไม่รู้จะเลือกว่าเอาอันไหน อย่างงี้ควรเขียนยังไงครับ

ขอคำชี้แนะด้วยครับ...ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-26 17:30:31 By : เด็กโง่
 

 

No. 3

Guest


ถ้าคุณหายมึนแล้ว มาต่ออีกนิดหนึ่งครับ นิยม Min/Max เพื่อตอบโจทย์ มันก็ได้ระดับหนึ่ง แต่ว่า

Code
Field1 Field 2 x 1 x 2 x 3 y 2 z 1


Code (SQL)
Select *, MAX(Field2) As Field2X  From xTable Group By Field 1


ผลลัพธ์

Code
Field1 Field2 x 3 y 2 z 1




ชูชกไม่เคยพอในความงามของเมียตัวเอง โน่นแกล้งขอลูกพระพุทธเจ้า
(จริงฯ อยากได้เมียนางมัทรี (ต้นกำเนิดของโสเภณี))

ผมต้องการ ไม่ใช่ MAX และไม่ใช่ MIN
Field1 Field2
x 2
y 2
z 1
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-26 17:33:11 By : หน้าฮี
 


 

No. 4



โพสกระทู้ ( 317 )
บทความ ( 0 )



สถานะออฟไลน์


แบบนี้พอได้ไหมครับ ใช้ 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
 


 

No. 5

Guest


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. 6

Guest


จาก #NO 5 ข้อสังเกตุ หนึ่งในหลายฯข้อ นั่นคือ
ลาก่อนคำสั่ง Group By
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-27 09:11:51 By : หน้าฮี
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอสอบถามเรื่องการ Group By ใน sql server หน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่