我的sql命令中缺少什么?

时间:2013-12-08 23:07:15

标签: sql

我想要查询的visitas数据库表中包含以下数据,以简化我在列visita上为其提供有序DESC的内容

idcliente    idcomercio    visita
----------------------------------------------
12393            2         2013 12 07 13:43:59
   10            2         2013 11 30 16:34:56
    8            2         2013 11 30 12:34:56
   12            2         2013 11 25 16:34:56
    6            2         2013 11 25 12:34:56
    2            2         2013 11 18 12:34:56
    4            2         2013 11 18 12:34:56
    6            2         2013 11 18 12:34:56
    2            2         2013 11 11 12:34:56

我希望在最新访问时间之前订购平板电脑,以及客户在该访问中完成的访问次数,对于此测试表,结果将是这一次

idcliente     #visits
---------------------
12393          1
   10          1
    8          1
   12          1
    6          2
    2          2
    4          1

(嗯,我知道3次访问的时间完全相同所以它可能不一定是他的订单中的结果,无论如何我的问题与此无关。

我瘦了下面的sql语句应该是实现上面的工作:

SELECT 
   idcliente,
   COUNT(idcliente) 
FROM 
   visitas 
WHERE 
   idcomercio = 2 
GROUP BY 
   idcliente 
ORDER BY 
   visita DESC

但是这个查询返回了这个结果:

idcliente     #visits
---------------------
12393            1
   10            1
    8            1
   12            1
    4            1
    6            2
    2            2

这显然是错误的,因为idcliente 6的客户端比idcliente 4的客户端更晚访问。

有人可以弄清楚我可能会失踪的是什么吗?我试图输入其他一些东西,但似乎都没有。

1 个答案:

答案 0 :(得分:3)

SELECT idcliente,COUNT(idcliente) FROM visitas WHERE idcomercio=2 
  GROUP BY idcliente ORDER BY MAX(visita) DESC

没有定义MAX没有定义哪个visita值用于排序。