从具有不同条件的同一张表中获取数据[关闭]

Posted

技术标签:

【中文标题】从具有不同条件的同一张表中获取数据[关闭]【英文标题】:Fetch data from same table with different condition [closed] 【发布时间】:2014-12-11 09:29:59 【问题描述】:

我有一个表名作为用户(id,Name,Status,joined_date)。

用户表

 id | Name | status | joined_date

 -------------------------------------
 1  | TDS  |  0      |      2014-10-16 

 2  | TDS  |  1      |      2014-10-11 

 3  | VAT  |  0      |      2014-10-11 

 4  | IT   |  0      |      2014-10-11 

 5  | IT   |  1      |      2014-10-11

 6  | TDS  |  0      |      2014-10-16 

 7  | TDS  |  1      |      2014-10-30 

 8  | VAT  |  0      |      2014-11-01 

 9  | IT   |  0      |      2014-10-07 

10  | IT   |  1      |      2014-10-11 

在我的结果中,我需要当月的姓名计数和当月状态的姓名计数为一。对于每个名称,两者都在同一行中。

预期结果

Name    |   current_month | current_month_ststus_1             

-----------------------------------------------------

  VAT   |         2       |            0 

  IT    |         4       |            1

 TDS    |         4       |            2

最近几天我对这个查询有点困惑。如果可能,请帮助我。 提前致谢

【问题讨论】:

请同时提供创建表查询 两个月的增值税差价,当月是什么意思? 你的问题不清楚。即使我很困惑.. 【参考方案1】:

SELECT name,count(status) as current_month, sum(status) as current_month_status FROM usertable WHERE month(joined_date) = MONTH(CURDATE()) 按名称分组

【讨论】:

您应该在 where 子句中包含年份,否则来自不同年份的同一月份将被组合在一起。 (例如,请参阅我的答案)【参考方案2】:

如果状态只允许0,1,

你可以得到这样的结果。

select count(Name) as current_month,sum(status) as current_month_status_1 from table group by currentmonth

【讨论】:

【参考方案3】:

select category_id,(select count(id) from category_images where delete_status='1'and

id = o.id group by category_id) as delete1,

(select count(id) from ategory_images where delete_status='0' and id = o.id group by

category_id)as delete2 from category_images o

我用 category_id 你必须用 name 字段好吧我希望这能解决你的问题

【讨论】:

【参考方案4】:

嗯,我正在考虑类似以下的事情。

SELECT
    Name,
    COUNT(Status) AS current_month,
    SUM(status) AS current_month_status_1
FROM
    Usertable
WHERE
        MONTH(joined_date) = MONTH(NOW())
    AND YEAR(joined_date) = YEAR(NOW())
GROUP BY
    Name,
    YEAR(joined_date),
    MONTH(joined_date)

这假定状态只能是一或零。

【讨论】:

不客气。乐于助人。

以上是关于从具有不同条件的同一张表中获取数据[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Vertica SQL 用于按列获取数据

从具有不同条件的表中选择总和和平均值

MYSQL从同一张表中选择不同的记录

如何从另一张表中获取完全匹配的数据?

查询获取同一张表中1:N关系的数据

如何比较同一张表(SQL Server)中的 2 行?