SQL- Tự tham gia và nhóm theo – tham gia và nhóm theo sql

Bài viết này sẽ thảo luận về SQL: Tự tham gia và Nhóm theo.

Bạn đang xem : tham gia và nhóm theo sql

Đây là câu hỏi phỏng vấn. Nó có vẻ rất đơn giản, nhưng có một số thủ thuật trong đó. Phân tích nó có thể xem xét một số khái niệm quan trọng của Truy vấn SQL.

Câu hỏi

Cho một bảng có bốn cột,

  • Nhân viên – bảng có các cột,
    • Id
    • Tên
    • Mức lương
    • ManagerId

Yêu cầu

Nhận Tên người quản lý, số tiền nhân viên cho mỗi người quản lý và tổng số tiền lương cho mỗi nhóm.

A- Thiết lập bảng và dữ liệu ban đầu

Thiết lập Bảng theo câu hỏi,

  1. SỬ DỤNG [TestDB]

  2. ĐI

  3. / ****** Đối tượng:

    Bảng

    [dbo]. [Nhân viên] Tập lệnh

    Ngày

    : 28/5/2021 7:42:51 CH ****** /

  4. ĐẶT

    ANSI_NULLS

    BẬT

  5. ĐI

  6. ĐẶT

    QUOTED_IDENTIFIER

    BẬT

  7. ĐI

  8. TẠO

    BẢNG

    [dbo] . [Nhân viên] (

  9. [Id] [

    int

    ] IDENTITY (1,1)

    KHÔNG

    KHÔNG ĐỦ

    ,

  10. [

    Tên

    ] [nvarchar] (

    max

    )

    KHÔNG

    KHÔNG ĐỦ

    ,

    < / p>

  11. [Lương] [

    int

    ]

    KHÔNG

    KHÔNG ĐỦ

    ,

  12. [ManagerId] [

    int

    ]

    KHÔNG

    < p>

    KHÔNG ĐỦ

    ,

  13. ĐIỂM YẾU

    [PK_dbo.E Nhân viên]

    CHÍNH

    TỪ KHÓA

    ĐÃ ĐIỀU CHỈNH

  14. (

  15. [Id]

    ASC

  16. )

    (PAD_INDEX =

    TẮT

    , STATISTICS_NORECOMPUTE =

    TẮT

    , IGNORE_DUP_KEY =

    TẮT

    , ALLOW_ROW_LOCKS =

    BẬT

    , ALLOW_PAGE_LOCKS =

    BẬT

    , OPTIMIZE_FOR_SEQUENTIAL_KEY =

    TẮT

    )

    BẬT

    [

    CHÍNH

    ]

  17. )

    BẬT

    [

    CHÍNH

    ] TEXTIMAGE_ON [

    CHÍNH

    ]

  18. ĐI

Chèn dữ liệu ban đầu

  1. insert

    dbo. Nhân viên

  2. Giá trị

    (

    ‘Greg’

    , 100000, 1),

  3. (

    ‘George’

    , 150000, 1),

  4. (

    ‘Helen’

    , 130000, 1),

  5. (

    ‘Tom’

    , 120000, 2),

  6. (

    ‘Kevin’

    , 110000, 2),

  7. (

    ‘David’

    , 120000, 3),

  8. (

    ‘Geek’

    , 110000,3),

  9. (

    ‘Tesla’

    , 120000,3)

Kết quả sẽ là,

B- Tự THAM GIA

Đây là sự cố TỰ THAM GIA. Tự tham gia là một tham gia thông thường, nhưng bảng được tham gia với chính nó. Chúng tôi xem xét các loại THAM GIA bên dưới,

Các loại SQL JOINs [ ref ]

Dưới đây là các loại JOIN khác nhau trong SQL,

  • (INNER) JOIN- Trả về các bản ghi có giá trị phù hợp trong cả hai bảng
  • LEFT (OUTER) JOIN- Trả về tất cả các bản ghi từ bảng bên trái và các bản ghi phù hợp từ bảng bên phải
  • RIGHT (OUTER) JOIN- Trả về tất cả các bản ghi từ bảng bên phải và kết quả phù hợp
    bản ghi từ bảng bên trái
  • FULL (OUTER) JOIN- Trả về tất cả các bản ghi khi có kết quả khớp ở một trong hai bên trái
    hoặc bảng bên phải

Chúng tôi tự THAM GIA,

  • Bảng bên trái là bảng nhân viên –

    dbo. Nhân viên e và

  • Bảng bên phải là bảng người quản lý – dbo. Nhân viên m,

  • Trong đó ManagerId của bảng Nhân viên == Id của bảng Người quản lý (EmployeeId)

  1. CHỌN

    m.

    Tên

    [ Người quản lý

    Tên

    ], e.Id [ID nhân viên], e.salary [Lương nhân viên]

  2. TỪ

    dbo. Nhân viên e

    THAM GIA

    dbo.Những người lao động m

  3. BẬT

    e.ManagerId = m.Id

Chúng tôi đã có kết quả,

Trong đó Tên người quản lý là những gì chúng ta cần, ID nhân viên và mức lương
CHỌN từ bảng nhân viên (bên trái) mà chúng tôi cần đếm và tính tổng.

Trong đó Tên người quản lý là những gì chúng tôi cần, ID nhân viên và Lương được CHỌN từ bảng nhân viên (bên trái) mà chúng tôi cần tính và tổng.

C- Nhóm theo [ ref ]

Để tính số và tổng, chúng ta cần sử dụng Mệnh đề Nhóm theo ,

Câu lệnh SQL GROUP BY

Câu lệnh GROUP BY nhóm các hàng có cùng giá trị thành tóm tắt
, chẳng hạn như “tìm số lượng khách hàng ở mỗi quốc gia”.

Câu lệnh GROUP BY thường được sử dụng với các hàm tổng hợp ( COUNT () ,
MAX () ,
MIN () , SUM () ,
AVG () ) để nhóm kết quả được đặt theo một hoặc nhiều cột.

  1. CHỌN

    m.

    Tên

    [ Người quản lý

    Tên

    ],

    số lượng

    (m.Id) [nhóm số tiền],

    sum

    (e.salary) [Tổng lương]

  2. TỪ

    dbo. Nhân viên e

    THAM GIA

    dbo.Những người lao động m

  3. BẬT

    e.ManagerId = m.Id

  4. nhóm

    bởi

    m.

    tên

Chúng tôi nhóm theo m.name và sử dụng hàm tổng hợp Count () và Sum ().

LƯU Ý

Khi chúng tôi chọn m.name, chúng tôi phải nhóm theo m.name, nếu không, giả sử chúng tôi nhóm theo m.id (điều đó chính xác),

  1. CHỌN

    m.

    Tên < / p>

    [Người quản lý

    Tên

    ],

    số lượng

    (m.Id) [số tiền của nhóm],

    sum

    (e.salary) [Tổng lương]

    >

  2. TỪ

    dbo. Nhân viên e

    THAM GIA

    dbo.Những người lao động m

  3. BẬT

    e.ManagerId = m.Id

  4. group

    bởi

    m.id < / p>

Sau đó, chúng tôi nhận được thông báo lỗi cho m.name đã chọn,

Bản tin 8120, Mức 16, Trạng thái 1, Dòng 1,

Cột ‘dbo.Eprisees.Name’ không hợp lệ trong danh sách lựa chọn vì nó không có trong hàm tổng hợp hoặc mệnh đề GROUP BY.

Tóm tắt

Bài viết này đã thảo luận về các tính năng chính của truy vấn SQL – JOIN và Group By.

Tham khảo

  • SQL

    Tham gia

    — w3schools.com

  • Câu lệnh SQL

    GROUP BY

    — w3schools.com


Xem thêm những thông tin liên quan đến chủ đề tham gia và nhóm theo sql

Bài 3: [Học SQL từ đầu] – Sữ dụng Inner Join, Left Join, Right Join, Full Outer Join, Union

alt

  • Tác giả: GROUP PTC
  • Ngày đăng: 2020-05-28
  • Đánh giá: 4 ⭐ ( 2649 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng Dẫn SQL.
    Sữ dụng một số câu lệnh cơ bản SQL để lấy dữ liệu:
    – Select … Where…Group By.. Order By
    – Inner Join
    – Left Join,
    – Right Join
    – Full Outer Join
    – Union
    – Union ALL
    – Nếu thấy hay các bạn đăng ký ủng hộ mình nhé, để mình có thêm động lực làm thêm nhiều bài khác.
    – SQL bài hướng dẩn: https://drive.google.com/file/d/1VKozjHFxfJEE1zwCIXLneEUJXyfsFP9f/view?usp=sharing

SQL Server: Sự khác biệt giữa THAM GIA BỞI và NHÓM B BYNG

  • Tác giả: qastack.vn
  • Đánh giá: 4 ⭐ ( 5077 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Chúng được sử dụng ở những nơi khác nhau. group bysửa đổi toàn bộ truy vấn,…

sql chọn với nhóm theo và tham gia để tra cứu

  • Tác giả: vncodeblog.com
  • Đánh giá: 5 ⭐ ( 5235 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

MS SQL – Tham gia với nhóm bằng

  • Tác giả: vie.northmyrtlebeachwomansclub.com
  • Đánh giá: 3 ⭐ ( 9889 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tôi rất mới làm quen với SQL và tìm hiểu nó từ cuốn sách “SAMS Tự dạy SQL trong 24 giờ”. Mối quan tâm của tôi là tất cả về các phép nối và nhóm đầu ra được chọn. Đây là cấu trúc bảng của tôi: TẠO BẢNG

NHÓM SQL THEO Câu lệnh

  • Tác giả: vi.w3hmong.com
  • Đánh giá: 4 ⭐ ( 8906 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Access SQL: khái niệm cơ bản, từ vựng và cú pháp

  • Tác giả: support.microsoft.com
  • Đánh giá: 5 ⭐ ( 4551 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tìm hiểu cách để truy xuất dữ liệu từ cơ sở dữ liệu Access bằng ngôn ngữ truy vấn có cấu trúc hoặc SQL

Gom nhóm dữ liệu với GROUP BY trong SQL

  • Tác giả: shareprogramming.net
  • Đánh giá: 3 ⭐ ( 9930 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tức là nếu một cột cụ thể của các dòng khác nhau có giá trị giống nhau thì chúng sẽ được sắp xếp thành một nhóm.

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Thẻ meta cho SEO: Hướng dẫn đơn giản cho người mới bắt đầu - sử dụng thẻ meta