Mysql查询帮助 - 计算行数

时间:2011-01-27 02:30:00

标签: php mysql

我有两个不同的表trackinge和链接

Trackingevent看起来像

eventName|eventStamp
SHARE_FACEBOOK|2011-01-20 14:05:40
SHARE_TWEET|2011-01-20 14:47:57
SHARE_FLICKR|2011-01-20 15:08:58
SHARE_STATION_LOGIN|2011-01-20 15:09:09
EMAIL_SHARE|2011-01-20 15:10:13
CONTEST_ENTRY:BLAH DATA|2011-01-20 15:10:13
CONTEST_ENTRY:BLAH DATA|2011-01-20 15:10:13

和链接看起来像

id|emailSub
6|1
7|0
8|1
9|0

我需要做的是我需要计算所有SHARE_FACEBOOK 和所有SHARE_TWEET 和所有SHARE_FLICKR 以及所有SHARE_STATION_LOGIN 以及所有COPNTEST_ENTRIES (没有其他数据后的:) 和EMAIL_SHARE 并以某种方式将那些与emailSub的数量相结合(等于1) 和数量。

所以我得到一个类似于

的返回数组
EMAIL_SHARE     77
SHARE_FLICKR    9
SHARE_FACEBOOK  105
SHARE_STATION_LOGIN     223
SHARE_TWEET     18
# of ID's
# of emailsub=1
CONTEST_ENTERIES 550

我可以使用它的第一部分 SELECT eventName,COUNT(*)FROM trackingevent GROUP BY eventName 但我很困惑如何获得#of emailsubs = 1的链接ID和CONTEST_ENTRY的数量:BLAH DATA(blah数据更改)。

我是否必须执行三种不同的SQL查询并合并数据?或者我可以以某种方式将它们组合成一个或?

1 个答案:

答案 0 :(得分:0)

这应该使用前缀

为您提供每种类型的计数
SELECT LEFT(eventName,INSTR(CONCAT(eventName,':'),':')) as prefix, count(*)
FROM trackingevent
GROUP BY LEFT(eventName,INSTR(CONCAT(eventName,':'),':'))

如果这不是你要求的话,你将不得不回答评论中的问题