MySQL:根据另一列的属性对数据进行排序的查询

MySQL:根据另一列的属性对数据进行排序的查询,sql,mysql,pivot,Sql,Mysql,Pivot,因此,要想为这部电影命名是很困难的 SELECT Date(p.born_at), SUM(p.value) as 'total_value_for_day' FROM puppies as p WHERE p.status = 2 GROUP BY DATE(p.born_at); 所以,这给出了一个2列的结果 我想要的是: 栏目: date | status = 1 | status = 2 | status = 3 DATA!!! 有没有办法做到这一点?你能澄清一下你想要的结果吗?看起

因此,要想为这部电影命名是很困难的

SELECT Date(p.born_at), SUM(p.value) as 'total_value_for_day'
FROM puppies as p
WHERE p.status = 2
GROUP BY DATE(p.born_at);
所以,这给出了一个2列的结果

我想要的是:

栏目:

date | status = 1 | status = 2 | status = 3
DATA!!!

有没有办法做到这一点?

你能澄清一下你想要的结果吗?看起来您需要4列,第一列是日期,接下来的三列是匹配状态的数据。例如,如果status=3,则填充该列中的数据。对吗?如果你给出了一个包含虚构数据的示例输出,那么你的问题就可以得到澄清。你能澄清你想要的结果吗?看起来您需要4列,第一列是日期,接下来的三列是匹配状态的数据。例如,如果status=3,则填充该列中的数据。对吗?如果您给出了一个包含虚构数据的示例输出,这将真正澄清您的问题。使用WHERE还是不使用WHERE更好?取决于您的数据!如果您有状态不是1、2或3的行,则使用
WHERE
可能会避免处理不必要的行。如果所有行都有其中一个值,则最好将其删除以避免冗余检查。使用WHERE还是不使用WHERE更好?取决于您的数据!如果您有状态不是1、2或3的行,则使用
WHERE
可能会避免处理不必要的行。如果所有行都有其中一个值,那么最好删除它以避免冗余检查。使用WHERE还是不使用WHERE更好?如果有3个以上的可能状态,我将使用WHERE子句。你的问题不清楚…使用WHERE还是不使用WHERE更好?如果你有3种以上的可能状态,我会使用WHERE子句。从你的问题看不清楚。。。
SELECT Date(born_at), 
    SUM(case when Status = 1 then value else 0 end) as 'status = 1',
    SUM(case when Status = 2 then value else 0 end) as 'status = 2',
    SUM(case when Status = 3 then value else 0 end) as 'status = 3' 
FROM puppies 
GROUP BY DATE(born_at); 
SELECT Date(p.born_at), 
SUM(case when status = 1 then p.value end) as 'status = 1',
SUM(case when status = 2 then p.value end) as 'status = 2',
SUM(case when status = 3 then p.value end) as 'status = 3'
FROM puppies as p
WHERE p.status in(1,2,3)
GROUP BY DATE(p.born_at);
SELECT
   DATE(p.born_at)
   , SUM(CASE WHEN STATUS = 1 THEN p.value END) AS 'Status = 1'
   , SUM(CASE WHEN STATUS = 2 THEN p.value END) AS 'Status = 2'
   , SUM(CASE WHEN STATUS = 3 THEN p.value END) AS 'Status = 3'
FROM puppies AS p
WHERE p.status IN(1, 2, 3)
GROUP BY DATE(p.born_at);