Giả sử tôi có một bảng đơn giản với 3 trường: 'place', 'user' và 'bytes'. Giả sử, dưới một số bộ lọc, tôi muốn nhóm theo 'địa điểm' và cho mỗi 'địa điểm', để tổng hợp tất cả các byte cho địa điểm đó và chọn ngẫu nhiên người dùng cho địa điểm đó (thống nhất từ tất cả người dùng phù hợp với 'nơi' bộ lọc và 'địa điểm' có liên quan). Nếu có chức năng tổng hợp "chọn ngẫu nhiên từ", tôi sẽ làm:SQL tổng hợp ngẫu nhiên
SELECT place, SUM(bytes), SELECT_AT_RANDOM(user) WHERE .... GROUP BY place;
... nhưng tôi không thể tìm thấy chức năng tổng hợp như vậy. Tui bỏ lỡ điều gì vậy? Điều gì có thể là một cách tốt để đạt được điều này?
RDBMS là gì? –
Tôi không biết về bất kỳ RDBMS cá nhân nào có chức năng như vậy. Hầu hết cần phải sử dụng một số cơ chế khác để đạt được kết quả tương tự * (Chẳng hạn như gán một số ngẫu nhiên cho mỗi người dùng, sau đó chọn người dùng có giá trị cao nhất.) * Nhưng mỗi người sẽ có các khả năng khác nhau và mỗi người sẽ thực hiện khác nhau. Vì vậy, đây thực sự là một câu hỏi cụ thể của RDBMS. – MatBailie
Nếu bạn đang sử dụng MySQL, chỉ cần viết sai 'GROUP BY' (ví dụ: không áp dụng tổng hợp trên người dùng) và nó sẽ chọn một hàng ngẫu nhiên. –