mysql - 在 SQL 查询中创建自定义列

标签 mysql sql

我有一个这样的表:

ITEM    PICTURE    CATEGORY    STOCK
 1      Mickey     Shirt        3
 2      Mickey     Jacket       2
 3      Donald     Jacket       0
 4      Donald     Shirt        6
 5      Donald     Hoodie       1
 6      Mickey     Hoodie       3
 7      Goofy      Shirt        1
 8      Goofy      Hoodie       2
 9      Goofy      Jacket       3

ITEM列自动递增

我需要这样的输出:

PICTURE    HOODIE    JACKET    SHIRT
Donald       1         0         6
Goofy        2         3         1
Mickey       3         2         3

知道如何产生该输出吗?谢谢

最佳答案

您可以使用CASE表达式。

查询

select PICTURE,
sum(case CATEGORY when 'Hoodie' then STOCK else 0 end) as `HOODIE`,
sum(case CATEGORY when 'Jacket' then STOCK else 0 end) as `JACKET`,
sum(case CATEGORY when 'Shirt' then STOCK else 0 end) as `SHIRT`
from your_table_name
group by PICTURE;

关于mysql - 在 SQL 查询中创建自定义列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46680810/

相关文章:

mysql - 提高 JOIN 查询速度

php - Typo3 V6 : How to create a content element container?(不带电视)

php - 使用 PDO 创建长插入 SQL 查询的最佳方式

mysql - EXISTS vs IN - 哪一个在MySQL 5.5和MySQL 5.7中更好?

php - 如何遍历包含从 MySQL 返回的数据的 PHP 数组?

mysql - 如何将属于数据库 "A"的表中的数据更新/插入到属于数据库 "B"的表中?

php - 使用 php 获取显示 mysql 查询

mysql - 日历的表结构 - 基于日期存储数据

mysql - 不允许 SQL 更新查询

SQL 问题 - fkey 的类型