我有一个名为seismik
的表
╔═══════════════╦══════════╗
║ date ║ type ║
╠═══════════════╬══════════╣
║ 2019-04-01 ║ rock ║
║ 2019-04-01 ║ water ║
║ 2019-04-01 ║ water ║
║ 2019-04-02 ║ rock ║
║ 2019-04-02 ║ rock ║
║ 2019-04-03 ║ water ║
║ 2019-04-03 ║ water ║
║ 2019-04-04 ║ rock ║
╚═══════════════╩══════════╝
我想要做的是计算每个日期中有多少种岩石,但是我希望没有岩石的日期仍然存在并且值为空。
所以我使用此查询
SELECT date,type, COUNT(`type`) AS `freq`
FROM seismik
WHERE type = "rock"
GROUP BY date_time
结果变成
╔═══════════════╦══════════╦═════════╗
║ date ║ type ║ freq ║
╠═══════════════╬══════════╬═════════╣
║ 2019-04-01 ║ rock ║ 1 ║
║ 2019-04-02 ║ rock ║ 2 ║
║ 2019-04-04 ║ rock ║ 1 ║
╚═══════════════╩══════════╩═════════╝
我期望的是
╔═══════════════╦══════════╦═════════╗
║ date ║ type ║ freq ║
╠═══════════════╬══════════╬═════════╣
║ 2019-04-01 ║ rock ║ 1 ║
║ 2019-04-02 ║ rock ║ 2 ║
║ 2019-04-03 ║ null ║ null ║ <- This
║ 2019-04-04 ║ rock ║ 1 ║
╚═══════════════╩══════════╩═════════╝
答案 0 :(得分:3)
使用@Override
public void onResume() {
super.onResume();
((AppCompatActivity)getActivity()).getSupportActionBar().setElevation(0);
}
并删除case when
条件
where
输出:
SELECT dateval,max(case when types='rock' then types end) types, COUNT(case when `types`='rock' then 1 end) AS `freq`
FROM t1
GROUP BY dateval
答案 1 :(得分:0)
select s.Date,e.type,count(e.type)/4
FROM seismik as s left join seismik as e
on e.type = s.type and e.type='rock'
GROUP BY date;
结果:-
2019-04-01岩石1.0000
2019-04-02岩石2.0000
2019-04-04岩石1.0000
2019-04-03 0.0000
答案 2 :(得分:-1)
在查询中,您将选择所有类型为“ rock”的条目。如果您还想获取类型为null的那些,则必须删除您的从句。