我的数据库中有一个表有问题,我必须查询表。
我想从卡片状态获取 ACTIVATED 的计数,并按照所需的分支和小时分组...
你能帮助我让我的查询工作吗?
这是我的疑问:
SELECT
DATE_FORMAT(DATE_VERIFIED, '%H') AS hour,
COUNT(CARD_STATUS) AS California
FROM customer
WHERE
CARD_STATUS = 'ACTIVATED' AND
DESIRED_BRANCH = 'California'
GROUP BY hour
我的查询只能获得加利福尼亚州......我也希望得到其他城市。
这是表格。
以下是所需的输出
答案 0 :(得分:1)
你只得到加利福尼亚,因为DESIRED_BRANCH ='加利福尼亚'。如果你想按小时计算活跃的Card_Status组,并且你的查询必须看起来像所需的分支
SELECT DATE_FORMAT(DATE_VERIFIED, '%H') as `hour`, COUNT(CARD_STATUS) as
`Number_Active` FROM `customer` where CARD_STATUS = 'ACTIVATED'
group by `hour`,branch
答案 1 :(得分:0)
在where子句中提到DESIRED_BRANCH = 'California'
可能会出错。您的查询应如下所示
SELECT DATE_FORMAT(DATE_VERIFIED, '%H') as `hour`, DESIRED_BRANCH, COUNT(CARD_STATUS) as
`Count` FROM `customer` where CARD_STATUS = 'ACTIVATED' group by `hour`,DESIRED_BRANCH
根据需要,这将按hour
和DESIRED_BRANCH
进行分组。如果要将DESIRED_BRANCH
包含在group by子句中,则必须获得{{1}}。
答案 2 :(得分:0)
SELECT active_california_hours.hour, COUNT(*)
FROM ( SELECT DATE_FORMAT(DATE_VERIFIED, '%H') as `hour`
FROM `customer`
where
CARD_STATUS = 'ACTIVATED'
and DESIRED_BRANCH = 'California') active_california_hours
GROUP BY hour