mysql分组查询语句怎么写,大家帮忙看下! 10

有表a,字段id,wz,pm,sj数据是idwzpmsj1a.com-12013-10-112b.com-12013-10-113c.com-12013-10-124a.... 有表 a,字段id,wz,pm,sj
数据是
id wz pm sj
1 a.com -1 2013-10-11
2 b.com -1 2013-10-11
3 c.com -1 2013-10-12
4 a.com 2 2013-10-20
5 b.com 3 2013-10-21
6 c.com 5 2013-10-22
7 a.com 1 2013-10-29
8 b.com 3 2013-10-29
9 c.com 6 2013-11-02

要获得的数据是,每个wz字段最近一次查询的pm字段如果大于0,那么输出所有该wz字段在表中所有的记录!这个最近一次查询可以根据sj字段也可以根据id字段。
我自己写的一个mysql句子是可以实现上述要求,但是有两个in导致执行速度很慢,大家有没有更好的方法呢?非常感谢,我自己研究了半天了都不行!
mysql语句:"select * from bd where wz in(select wz from bd where pm>0 and id in(select max(id) from bd group by wz)"
展开
 我来答
heyongsai
2014-03-20 · TA获得超过1184个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:300万
展开全部

您看是否满足您的需求:

select
t1.*
from
bd t1
where t1.id in (
   select max(t2.id)
   from bd t2
   where t2.pm > 0
   group by t2.wz
)

有问题,请追问。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kxssc069
2014-03-20 · TA获得超过121个赞
知道答主
回答量:232
采纳率:0%
帮助的人:92.5万
展开全部
选择时(visittime)的时间,金额(大小写状态时,= 1,那么1,否则为0结束)状态1,
总和(案件时状态= 2,那么1,否则为0结束)状态2,

总和(案件时状态= 3,那么1,否则为0结束)STATE3

from表名where日期= 7(使用变量代替)

按小时(visittime)

组----
其中提取物(每天从visittime)= 7
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jyg0124
2014-03-21 · TA获得超过321个赞
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:70.8万
展开全部
in 比较慢,
一个原因,你的wz是否有索引,
heyongsai 为正解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式