我有一個SQL查詢A
(見下文有詳細介紹)返回表如下:數據標準化
cluster brand amount
0 bos 600
0 phi 300
0 har 100
1 pro 2500
1 wal 1500
1 ash 1000
2 dil 4200
2 sor 500
2 van 300
...
不過,我想顯示量不大,但該部分量相比,在羣集中的總量,像下表:
cluster brand amount
0 bos 0.60
0 phi 0.30
0 har 0.10
1 pro 0.50
1 wal 0.30
1 ash 0.20
2 dil 0.84
2 sor 0.10
2 van 0.06
...
我應該如何改變我的SQL,這樣我可以克服所有款項訪問和在一個集羣中,而且還有多行與相同的羣集?
** **詳細
SQL服務器:MySQL中,通過Python-MySQL的連接器接口。
當前的SQL查詢來產生第一個表:
SELECT c.cluster, brand, COUNT(o.id) AS brand_amount
FROM nyon_all.clustering AS c
LEFT JOIN nyon_all.persons AS p ON c.pid = p.id
LEFT JOIN nyon_all.orders AS o ON p.id = o.pid
LEFT JOIN nyon_all.articles AS a ON o.aid = a.id
LEFT JOIN nyon_all.brands AS ab ON a.brand_id = ab.id
WHERE c.cluster_round = 'Org_2014-08-27_10:45:35'
GROUP BY cluster, brand
HAVING brand_amount > 100
ORDER BY c.cluster ASC, brand_amount DESC;
表orders
(主鍵id
)鏈接persons
(外鍵pid
)與articles
(外鍵aid
)。 Articles
有一定的品牌(外鍵brand_id
),它們與表brands
中的名稱有關。
的每個羣集物品的總量可以用下面的SQL查詢來檢索:
SELECT c.cluster, COUNT(o.pid) AS amount
FROM nyon_all.clustering AS c
LEFT JOIN nyon_all.persons AS p ON c.pid = p.id
LEFT JOIN nyon_all.orders AS o ON p.id = o.pid
WHERE c.cluster_round = 'Org_2014-08-27_10:45:35'
GROUP BY cluster
ORDER BY c.cluster ASC, amount DESC;
結果:
cluster amount
0 1000
1 5000
2 5000
不過,我似乎無法給兩個SQL查詢相結合。
數據是不是在SQL查詢表歸! :) – NoobEditor 2014-08-27 13:03:57