1
ランキング列を追加するクエリがあります。私の既存のクエリは3つのテーブルをユニオンクエリとして持ち、その週の合計注文額の合計を持っています。このクエリは、WeekCommencingでグループ化されたその週の合計注文額の合計を生成しますが、その週の最も低い合計値に基づいてランキング列を追加するのに苦労しています。これまでのランク付けSUMの値の列を日付別にグループ化する
CREATE TABLE IF NOT EXISTS ORD (
WeekCommencing DATE,
Value DECIMAL(20 , 6),
Orders INT(6)
);
CREATE TABLE IF NOT EXISTS REF (
WeekCommencing DATE,
Value DECIMAL(20 , 6),
Orders INT(6)
);
CREATE TABLE IF NOT EXISTS SOH (
WeekCommencing DATE,
Value DECIMAL(20 , 6),
Orders INT(6)
);
INSERT INTO ORD (WeekCommencing, Value, Orders) VALUES
('2017-07-24',1,1),
('2017-07-31',2,1),
('2017-07-17',3,1);
INSERT INTO REF (WeekCommencing, Value, Orders) VALUES
('2017-07-24',4,1),
('2017-07-17',5,1),
('2017-07-31',6,1);
INSERT INTO SOH (WeekCommencing, Value, Orders) VALUES
('2017-07-17',7,1),
('2017-07-24',8,1),
('2017-07-31',9,1);
マイベストエフォート:
はSELECT
WeekCommencing,
SUM(Value) AS 'TotalValue',
SUM(Orders) AS 'Orders',
@r:[email protected]+1 As 'Rank'
FROM
(SELECT
WeekCommencing, Value, Orders
FROM
ORD
GROUP BY WeekCommencing UNION ALL SELECT
WeekCommencing, Value, Orders
FROM
REF
GROUP BY WeekCommencing UNION ALL SELECT
WeekCommencing, Value, Orders
FROM
SOH
GROUP BY WeekCommencing) t1,
(SELECT @r:=0) Rank
GROUP BY WeekCommencing DESC;
私の試みは、現在の週の順にランク付けし
私は(更新)SQLFiddle例はこちらhttp://sqlfiddle.com/#!9/f1d43/35
CREATEおよびINSERT文であります最高から最低までのランク付けではなく、開始します。
私の望ましい結果は
WeekCommencing TotalValue Orders Rank
2017-07-31 17 3 1
2017-07-24 13 3 3
2017-07-17 15 3 2
おかげで事前
偉大です。ランクが正しく表示されます。 WeekCommencingでランク付けと注文をすることは可能ですか? – Walkertron
別のスーパークエリ – Strawberry
でラップしてください。それは今ソートされています。 – Walkertron