根据列选择不同的行

时间:2014-02-13 00:32:05

标签: sql

以这种方式查询我的结果数据。

 Id    Size  
 123     1
 123     1
 123     2
 123     2
 134     1
 134     1
 134     2

我希望结果让我得到计数​​,消除重复的大小,如

 Id    Size  
 123     1
 123     2
 134     1
 134     2

以上是加入两张桌子的结果。问题是我在这种情况下无法使用。

这是表格

的方式
Table1:
   Id Created ... .. .. ..
   123 date1 ....
   134 date2 ....

Table2:     
 Id    Size  
 123     1
 123     2
 134     1
 134     2

我的查询基于CreatedDate从Table1中选择,就像这样

 select count(*)
 from table1

 join table2
 on table1.id = table2.id

 where table1.creates between '' and ''.

你如何获得不同的尺寸。

如果我使用select count(distinct table2.size),它只返回所有行的1和2.

2 个答案:

答案 0 :(得分:0)

SELECT DISTINCT Id, Size
    FROM table1

这应该为您提供不同的ID和大小组合的列表。

答案 1 :(得分:0)

 select count(distinct table1.id, table2.size)
 from table1

 join table2
 on table1.id = table2.id

 where table1.creates between '' and ''

有时解决方案是如此明显......:)

更新:另一种方式

select count(*) from (
     select distinct table1.id, table2.size
     from table1

     join table2
     on table1.id = table2.id

     where table1.creates between '' and ''
) sq