mysql - MySQL,数月计算不同的元素
问题描述
我有 SELECT 来计算几个月的不同元素。但是,如果少数元素具有相同的名称并且位于不同的月份,则 DISTINCT 会在每个月单独工作
SELECT
YEAR( `date` ) AS "year",
MONTH( `date` ) AS "month",
count( DISTINCT name ) AS "howmany"
FROM
`XYZ`
GROUP BY
name,
year,
month
ORDER BY
`date` DESC
数据:
_________________________
|01-01-2018 | name1 |
|01-02-2018 | name1 |
回报:
2018 | 01 | 1
2018 | 02 | 1
而且我要:
2018 | 02 | 2
可能吗?如何修复查询?
解决方案
我在这里使用 Oracle,手边没有 MySQL,所以你必须调整查询,但我希望你明白:
select XYZ.d, XYZ.name, a.howmany
from XYZ
join (select name, count(name) as howmany from XYZ group by name ) a
on XYZ.name = a.name
推荐阅读
- javascript - 是否可以使用 Javascript 清除磁盘缓存中存在的 API 响应或 XHR 内容
- java - 谁能建议我如何使用 Spring 从 MySQL 数据库中进行基于位置的搜索?
- sql - 错误必须在 sql server 中声明标量变量
- sql - 如何在 sql server 中交替使用 0 和 1 值?
- java - 可以从多个模块访问包 javax.xml.stream:
, java.xml - imagemagick - 使用 Imagemagick 创建随机无缝图案
- javascript - 更改 react js 中日历组件的样式
- c# - 在 selenium C# 中面临来自 html 表单的问题和选择下拉值
- angular - 在 Angular 的 Jasmine 测试用例中配置 TestBed 的推荐方法是什么?
- javascript - 如何使用来自 ReactJS 的 MaskedInput 为 CPF 或 CNPJ 设置掩码?