我有一个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