请参阅下图:
给定original
表,我需要在服务器上创建MySQL中的derived
表。
使用CREATE TABLE ... AS SELECT DISTINCT...
我可以使用derived
列创建Category
表格,但是徒劳地尝试创建Category_count
列。你能指出如何解决这个问题吗?
甚至不满意MySQL或SQL,因此请求。
非常感谢提前!
答案 0 :(得分:1)
如果表格不存在:
,请使用以下内容CREATE TABLE derived AS
SELECT Category, COUNT(*) AS Category_count
FROM original
GROUP BY Category
如果表已存在并且未创建重复的行,请使用以下内容:
INSERT INTO derived (Category, Category_count)
SELECT Category, COUNT(*) AS Category_count
FROM original o
WHERE NOT EXISTS (SELECT * FROM derived d WHERE d.Category = o.Category)
GROUP BY Category
使用以下内容更新已存在的行:
UPDATE derived LEFT JOIN (
SELECT Category, COUNT(*) AS Category_count
FROM original
GROUP BY Category
)x ON derived.Category = x.Category
SET derived.Category_count = x.Category_count
答案 1 :(得分:0)
选择catoregy,count(id)作为category_count从catoregy从原始组派生