- sqliteはサポートしていません
RANK
。
- 必要な 4 つの異なるクエリがあり
UNION
ます。
したがって、次のクエリは目的の行を返します。
SELECT * FROM product_achievement ORDER BY value LIMIT 3
UNION
SELECT * FROM product_achievement ORDER BY value DESC LIMIT 3
UNION
SELECT * FROM product_achievement ORDER BY volume LIMIT 3
UNION
SELECT * FROM product_achievement ORDER BY volume DESC LIMIT 3;
の回避策RANK
:
ランキング情報も必要な場合はVIEW
、ランキング付きの を作成することをお勧めします。
CREATE VIEW ranked_product_achievement AS
SELECT *,
(SELECT COUNT() FROM product_achievement WHERE value<=t.value) AS r_value_a,
(SELECT COUNT() FROM product_achievement WHERE value>=t.value) AS r_value_d,
(SELECT COUNT() FROM product_achievement WHERE volume<=t.volume) AS r_volume_a,
(SELECT COUNT() FROM product_achievement WHERE volume>=t.volume) AS r_volume_d
FROM product_achievement AS t;
次にSELECT
、作成されたビューから次のことができます。
SELECT id, category, value, volume, r_value_a, r_volume_a
FROM ranked_product_achievement
WHERE r_value_a<=3 OR r_value_d<=3 OR r_volume_a<=3 OR r_volume_d<=3;