我有一個table
它有2 column
,類型和年齡,但我想顯示在5列,因爲它的條件就像這個例子: | TYPE |年齡< 10 | 10 < =年齡< 20 |年齡> 20 |如何從同一列中選擇不同的值?
我該如何做到這一點,因爲它只有2個column
?
我試過用不同的別名選擇同一個表,但它不是很好,在執行時間很長。
任何幫助將不勝感激。
我有一個table
它有2 column
,類型和年齡,但我想顯示在5列,因爲它的條件就像這個例子: | TYPE |年齡< 10 | 10 < =年齡< 20 |年齡> 20 |如何從同一列中選擇不同的值?
我該如何做到這一點,因爲它只有2個column
?
我試過用不同的別名選擇同一個表,但它不是很好,在執行時間很長。
任何幫助將不勝感激。
試試這個:
使用CASE聲明
select TYPE,
case when Age < 10 then age end as ' Age<10',
case when Age between 10 and 20 then age end as ' Age 10-20',
case when Age > 20 then age end as ' Age>20'
from
your_table
你想要的列值是什麼?布爾?
SELECT type,
age < 10 AS "Age < 10",
age >= 10 AND age < 20 AS "10 <= Age < 20",
age > 20 AS "Age > 20"
FROM table_name;
好了,顯然你想要的總(各年齡組人數的計數)
SELECT type,
(SELECT COUNT(*) FROM table_name AS t2 WHERE age < 10 AND t2.type = type) AS "Age < 10",
(SELECT COUNT(*) FROM table_name AS t2 WHERE age >= 10 AND age < 20 AND t2.type = type) AS "10 <= Age < 20)"
...and so on...
FROM table_name
我想這是一樣的,你認爲太慢的解決方案?我想不出另一個更好的。年齡的條件索引會有所幫助,但MySQL不支持條件索引。在PostgreSQL中,你可以使用CREATE INDEX ON table_name (age) WHERE age < 10 ...
數量,我想要計數例如有多少類型的年齡<10 –
因此,「多少類型的年齡<10」意味着你想要一個聚合函數,然後......目前的答案都不會工作。 –
有多少?在這種情況下,我只想顯示3種不同的情況。當我嘗試你的答案時說:「命令不同步;你現在不能運行這個命令」 –
非常感謝你,你拯救了我的一天。但是當我嘗試時有一個弱點,它會花費很多的記憶。 –