2010-10-01 69 views
0

使用MySQL和PHP;我试图构建一个包含从TABLE_1通过分组的平均数的指标:使用PHP从MySQL数据库构建索引表

类型,名称,小时,天,月

所以我需要知道哪些值组合的是TABLE_1,一年让我知道要在我的AVG()查询中放置什么。

我要的是找出所有不同组合的,可以在表中比较以下行时进行:

type 
name 
hour 
day 
month 
year 

这里的TABLE_1的例子:

ID|type|name|location|amount|year|month|day_num|day|hour|minute|second 

1|car|ben|1|1.00|2010|10|01|Friday|03|05|45 
1|car|bob|1|3.00|2010|10|01|Friday|04|05|45 
2|cow|bob|2|2.00|2009|07|12|Sunday|09|10|12 
2|cow|ben|2|4.00|2009|07|12|Sunday|10|10|12 

那么什么我最终将是:

type|name|year|month|day|hour  

car|ben|2010|10|01|Friday|03 
car|bob|2010|10|01|Friday|04 
cow|bob|2009|07|12|Sunday|09 
cow|ben|2009|07|12|Sunday|10 

我将如何格式化查询来做到这一点?

+0

只是为了确定:您是否想要查找*存在*的所有组合,或者现有值可能*的组合? – 2010-10-01 20:57:38

+0

现在存在的所有组合。 – Mark 2010-10-01 20:59:01

+0

为什么在世界上你不使用DATETIME?所有信息仍然可用(甚至是工作日)。 – halfdan 2010-10-01 20:59:30

回答

1

既然你只是希望现有的组合,你可以简单地运行此查询:

SELECT DISTINCT type, name, hour, day, month, year FROM table 

此经过的所有行,以及存在于表中的每个组合,该组合将被输出一次在结果集中。

+0

谢谢,效果很好!非常简单但非常有效。 – Mark 2010-10-01 21:10:19