是否有一些查询"魔法"可以执行我正在寻找的内容,或者必须使用返回的结果以编程方式完成?
我有桌子"骨头":
Color Amount Length
-----------------------
yellow 3 15
brown 2 16
white 4 10
yellow 2 11
black 2 15
white 1 15
brown 2 16
white 4 10
yellow 1 11
black 2 15
Run Code Online (Sandbox Code Playgroud)
我实际上想要得到一个观点,我看到它按每种颜色的骨骼总量排序,并查看数量.应该是这样的:
Color Amount
-----------------------
white 9
yellow 6
brown 4
black 4
Run Code Online (Sandbox Code Playgroud)
但到目前为止,我只想到了以下查询:
SELECT Color,COUNT(*) as count FROM tablename GROUP BY Color ORDER BY count DESC;
Run Code Online (Sandbox Code Playgroud)
但这给了我:
Color Amount
-----------------------
white 3
yellow 3
brown 2
black 2
Run Code Online (Sandbox Code Playgroud)
哪个是具有不同值的事件计数,但不是我真正想要的.是否可以在一个查询中?如果这样的魔法可能,我该如何扩展呢?例如,我的数量相同,但是对于长度超过11厘米的骨头,我们可以这样说吗?
我对SQL trully的了解不是很好,无法执行我想要的.我有两个表:一个是长数据表,有很多列,其中一个TypeName,最近我添加了新列到表TypeID(它是空的atm).喜欢:
column1 column2 column3 TypeName TypeID
------------------------------------------------
... ... ... name1 NULL
... ... ... name2 NULL
... ... ... name1 NULL
... ... ... name3 NULL
... ... ... name1 NULL
... ... ... name4 NULL
... ... ... name5 NULL
Run Code Online (Sandbox Code Playgroud)
第二个表我称之为referenceTable.它将每个可能的TypeName映射到TypeID.喜欢:
TypeID TypeName
-------------------
0 name1
1 name2
2 name3
etc...
Run Code Online (Sandbox Code Playgroud)
我想在refference表中的基于数据表的对应值中填充TypeID.对此有什么疑问?
编辑:是的我想用正确的值TypeName填充TypeID列后从数据表中删除.当然,我正在寻找同时为整个表执行此操作的查询.