tôi có các dữ liệu sau trên bànOracle SQL gán các số liên tiếp cho một tập hợp dựa trên cột giá trị
ID_1 ID_2 SEQ GROUP 212648 601327 1 212648 1805 2 212648 500886 3 212648 3405 4 212648 501174 5 212648 201245 6 212648 500449 7 212648 3804 8 212648 501533 9 212648 3989 10 212648 500280 11 START 212648 175 12 BETWEEN 212648 500395 13 END 212648 1817 14 212648 500945 15 START 212648 183 16 BETWEEN 212648 500543 17 BETWEEN 212648 181 18 BETWEEN 212648 500009 19 END 212648 5576 20 212648 500960 21 212648 5562 22 212648 603659 23
Tôi muốn thêm một cột rằng sẽ áp dụng một tên nhóm cho các hàng giữa 'START" và 'END' Ví dụ:.
ID_1 ID_2 SEQ GROUP GROUP_SEQ 212648 601327 1 212648 1805 2 212648 500886 3 212648 3405 4 212648 501174 5 212648 201245 6 212648 500449 7 212648 3804 8 212648 501533 9 212648 3989 10 212648 500280 11 START 1 212648 175 12 BETWEEN 1 212648 500395 13 END 1 212648 1817 14 212648 500945 15 START 2 212648 183 16 BETWEEN 2 212648 500543 17 BETWEEN 2 212648 181 18 BETWEEN 2 212648 500009 19 END 2 212648 5576 20 212648 500960 21 212648 5562 22 212648 603659 23
tôi đã tìm kiếm trong các chức năng phân tích của Oracle (RANK(), FIRST, LAST() vv) nhưng tôi không thể tìm thấy một giải pháp Cảm ơn trước cho bất kỳ. phản hồi
Đúng nếu tôi sai nhưng không thể chuẩn hóa bảng và tránh điều này? –
Giá trị cột SEQ và GROUP là giá trị được tính từ các vùng chọn. Tôi đã giảm kích thước của bảng để trình bày vấn đề. Bạn đang nghĩ gì về bình thường? – chipix
Biểu mẫu bình thường thứ hai quy định rằng tất cả các cột không phải là cột phụ thuộc vào chức năng trên toàn bộ khóa chính. –