[英]Display Sql results based on Percentages
伙計們,美好的一天! 我試圖在 SQL 中獲得所需的結果。
我有一個這樣的表
Products | Colors
******************
Bag | Blue
Shoes | Blue
Shirt | Yellow
Sandal | Yellow
Phone | Yellow
Cotton | Blue
Paper | Blue
Biro | Blue
Track | Yellow
Pouch | Yellow
Cap | Yellow
Hat | Yellow
Pants | Blue
Bucket | Blue
Belt | Blue
Car | Yellow
Socks | Yellow
上面的行是 20。
我想要實現的是隨機顯示10個結果:
其中:3 行(結果的 30%)為藍色,7 行(結果的 70%)為黃色。
謝謝你。 我很抱歉沒有詳細詢問。
這是一種幾乎可以滿足您的要求的方法。 要在純 SQL 中實現您的確切規范涉及更多...
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table
(Products VARCHAR(20) NOT NULL
,Colors VARCHAR(20) NOT NULL
,PRIMARY KEY(products,colors)
);
INSERT INTO my_table VALUES
('Bag','Blue'),
('Shoes','Blue'),
('Shirt','Yellow'),
('Sandal','Yellow'),
('Phone','Yellow'),
('Cotton','Blue'),
('Paper','Blue'),
('Biro','Blue'),
('Track','Yellow'),
('Pouch','Yellow'),
('Cap','Yellow'),
('Hat','Yellow'),
('Pants','Blue'),
('Bucket','Blue'),
('Belt','Blue'),
('Car','Yellow'),
('Socks','Yellow');
SELECT * FROM my_table ORDER BY CASE WHEN colors = 'blue' THEN RAND()*3 ELSE RAND()*7 END DESC LIMIT 10;
+----------+--------+
| Products | Colors |
+----------+--------+
| Socks | Yellow |
| Shirt | Yellow |
| Hat | Yellow |
| Track | Yellow |
| Cap | Yellow |
| Sandal | Yellow |
| Car | Yellow |
| Pants | Blue |
| Shoes | Blue |
| Belt | Blue |
+----------+--------+
SELECT * FROM my_table ORDER BY CASE WHEN colors = 'blue' THEN RAND()*3 ELSE RAND()*7 END DESC LIMIT 10;
+----------+--------+
| Products | Colors |
+----------+--------+
| Track | Yellow |
| Phone | Yellow |
| Hat | Yellow |
| Socks | Yellow |
| Cap | Yellow |
| Sandal | Yellow |
| Shoes | Blue |
| Biro | Blue |
| Pouch | Yellow |
| Bucket | Blue |
+----------+--------+
SELECT * FROM my_table ORDER BY CASE WHEN colors = 'blue' THEN RAND()*3 ELSE RAND()*7 END DESC LIMIT 10;
+----------+--------+
| Products | Colors |
+----------+--------+
| Sandal | Yellow |
| Hat | Yellow |
| Pouch | Yellow |
| Socks | Yellow |
| Cap | Yellow |
| Bucket | Blue |
| Paper | Blue |
| Phone | Yellow |
| Track | Yellow |
| Shirt | Yellow |
+----------+--------+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.