SQL,最常出现的值

时间:2013-03-14 03:39:37

标签: sql frequency

我有两个典型的表,即一对多关系的客户和联系人 例如,我的表格填充如下:

Customer
-------------
CustomerId
    1

Contact
---------------
ContactId     CustomerId    FName      LName       Address       CreatedAt
    1             1         John       Smith       Add1         25/01/2013
    2             1         John       Cole        Add1         26/01/2013
    3             1         Alex       Cole        Add1         27/01/2013
    4             1         John       Smith       Add2         28/01/2013 
    5             1         Alex                   Add2         29/01/2013 

我想在以下5个行中创建一个新行:

对于每个字段(列),选择最常出现但不为空或空的字段。

如果非比其他更多,则应使用最新的记录,该记录不为空或空。

因此对于上面提到的例子,行应该是这样的:

CustomerId    FName      LName       Address 
    1         John       Smith        Add1

由于

1 个答案:

答案 0 :(得分:2)

你没有指定哪个RDBMS,但我认为应该这样做:

SELECT CustomerId, FName, LName, Address FROM Contact WHERE CustomerId = 1 GROUP BY FName, LName ORDER BY COUNT(*) DESC LIMIT 1
相关问题