Bạn có thể nhận được sự kết hợp riêng biệt của 2 trường khác nhau trong một bảng cơ sở dữ liệu không? nếu vậy, bạn có thể cung cấp ví dụ về SQL.
Câu trả lời:
Làm thế nào về đơn giản:
select distinct c1, c2 from t
hoặc là
select c1, c2, count(*)
from t
group by c1, c2
Operand should contain 1 column(s)
lỗi, vấn đề của bạn là có thể bạn đang làm select distinct(c1, c2) from t
và bạn không được phép sử dụng dấu ngoặc ở đây. Đó là cách tôi đến đây.
Nếu bạn chỉ muốn các giá trị riêng biệt từ hai trường, cộng với việc trả lại các trường khác cùng với chúng, thì các trường khác phải có một số loại tổng hợp trên chúng (tổng, tối thiểu, tối đa, v.v.) và hai cột bạn muốn phân biệt phải xuất hiện trong nhóm theo mệnh đề. Nếu không, nó giống như Decker nói.
Chia sẻ suy nghĩ ngu ngốc của tôi:
Có lẽ tôi chỉ có thể chọn phân biệt trên c1 mà không phải trên c2, vì vậy cú pháp có thể là select ([distinct] col)+
đâu distinct
là định nghĩa cho mỗi cột.
Nhưng sau khi suy nghĩ, tôi thấy rằng sự khác biệt chỉ trên một cột là vô nghĩa . Hãy quan hệ sau:
| A | B
__________
1| 1 | 2
2| 1 | 1
Nếu chúng ta select (distinct A), B
, thì điều gì là thích hợp B
choA = 1
?
Vì vậy, distinct
là một điều kiện cho a statement
.