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

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

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

Đâ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ủ đề nhóm theo sql với tham gia

[SQL Server] #06 – Gom nhóm GROUP BY, HAVING

alt

  • Tác giả: HIENLTH Channel
  • Ngày đăng: 2021-09-14
  • Đánh giá: 4 ⭐ ( 8567 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [SQL Server] 06 – Gom nhóm GROUP BY, HAVING

    Mệnh đề GROUP BY trong SQL Server cho phép bạn sắp xếp các dòng của câu truy vấn theo nhóm. Các nhóm này được xác định bởi các cột mà bạn chỉ định trong mệnh đề GROUP BY.
    Các hàm cơ bản: COUNT (đếm), MIN (nhỏ nhất). MAX (lớn nhất), SUm (tổng), AVG(trung bình).

    Mệnh đề HAVING được dùng kết hợp với mệnh đề GROUP BY trong SQL Server nhằm giới hạn nhóm các dòng trả về, chỉ khi điều kiện được được đáp ứng là TRUE.

    Slide: https://bit.ly/sql05-groupby-having
    Database Script (dùng để dựng lại): https://bit.ly/qlbanhang-script

    sqlserver hienlth hcmue

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

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

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

  • Tác giả: shareprogramming.net
  • Đánh giá: 4 ⭐ ( 8130 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.

NHÓM SQL THEO Câu lệnh

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

Stored Procedure trong SQL Server

  • Tác giả: comdy.vn
  • Đánh giá: 3 ⭐ ( 3687 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tìm hiểu mọi thứ bạn cần biết về stored procedure trong SQL Server để tạo và lưu trữ các truy vấn phức tạp.

FUNCTION (Hàm) trong SQL Server

  • Tác giả: quantrimang.com
  • Đánh giá: 3 ⭐ ( 5137 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Function (Hàm) trong SQL Server được lưu trữ trong cơ sở dữ liệu giúp bạn có thể chuyển các tham số vào cũng như trả về các giá trị. Bài viết sẽ cung cấp cho bạn cú pháp và những ví dụ về cách tạo và xóa bỏ function trong SQL Server.

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 ⭐ ( 2785 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,…

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  javatpoint - tạo enum trong java