繁体   English   中英

列中的COUNT个值并生成结果表mysql

[英]COUNT values in column and produce table of results mysql

提出这个问题的开头-我知道我在这里确实遗漏了一些明显的东西,但是那是星期五下午!

我正在尝试计算某些值出现在同一列中并生成结果表的次数。

到目前为止,这是我的代码:

MySQL数据库

SELECT COUNT(order_status) as printed
FROM orders WHERE order_status = 'Printed Order'

UNION

SELECT COUNT(order_status) as charged
FROM orders WHERE order_status = 'Charged Order'

UNION

SELECT COUNT(order_status) as exchanged
FROM orders WHERE order_status = 'Exchanged Order'

UNION

SELECT COUNT(order_status) as refunded
FROM orders WHERE order_status = 'Refunded Order'

UNION

SELECT COUNT(order_status) as cancelled
FROM orders WHERE order_status = 'Cancelled Order'
GROUP BY order_status

以上查询结果

printed
-------
224
19190
593
2618
2899

代码产生的数字正确,但是,我希望结果看起来如下:

所需结果

printed - 224
charged - 19190
exchanged - 593
refunded - 2618
cancelled -2899

这样,我可以通过关联数组调用即$order_status['printed']轻松引用它们

任何帮助都会很棒。

添加指定类型的列。 最简单的方法是使用group by

select order_status, count(*)
from orders o
group by order_status;

如果使用PDO,则通过以下方式将获取模式设置为默认创建关联数组:

$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

尝试:

SELECT order_status, COUNT(order_status) as printed
FROM orders WHERE order_status = 'Printed Order'
GROUP BY order_status

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM