背景:我正在编写一个查询来比较儿童实际和理想生长数据。孩子们每年看一次医生,医生测量,点被铺在典型的生长曲线上。问题是,我使用的图形组件需要固定数量的数据点。将丢失的数据作为NULL没有问题,但它们必须存在。
我得到的数据:
age weight/kg
-----------------
2 10
3 11
6 20预期:
age weight/kg
-----------------
2 10
3 11
4 NULL
5 NULL
6 20所需的年龄值是固定的(在本例中为2-6),并且可以进行硬编码,因为它们不在任何表中,否则我将加入并分组。我想使用一个查询。
发布于 2015-01-15 02:53:57
如果您想要在0到99之间生成序列的查询,下面是查询。您可以从表中的子查询中获得权重。我已经给出了2到6的范围。
SELECT
SEQ.SeqValue AS age,
(SELECT weight FROM your_table WHERE age = SEQ.SeqValue) AS "weight/kg"
FROM
(
SELECT
(TENS.SeqValue + ONES.SeqValue) SeqValue
FROM
(
SELECT 0 SeqValue
UNION ALL
SELECT 1 SeqValue
UNION ALL
SELECT 2 SeqValue
UNION ALL
SELECT 3 SeqValue
UNION ALL
SELECT 4 SeqValue
UNION ALL
SELECT 5 SeqValue
UNION ALL
SELECT 6 SeqValue
UNION ALL
SELECT 7 SeqValue
UNION ALL
SELECT 8 SeqValue
UNION ALL
SELECT 9 SeqValue
) ONES
CROSS JOIN
(
SELECT 0 SeqValue
UNION ALL
SELECT 10 SeqValue
UNION ALL
SELECT 20 SeqValue
UNION ALL
SELECT 30 SeqValue
UNION ALL
SELECT 40 SeqValue
UNION ALL
SELECT 50 SeqValue
UNION ALL
SELECT 60 SeqValue
UNION ALL
SELECT 70 SeqValue
UNION ALL
SELECT 80 SeqValue
UNION ALL
SELECT 90 SeqValue
) TENS
) SEQ
WHERE SEQ.SeqValue BETWEEN 2 AND 6发布于 2015-01-15 00:40:29
在查询中使用IFNULL()为其赋值为零http://www.mysqltutorial.org/mysql-ifnull/
https://stackoverflow.com/questions/27954991
复制相似问题