2013-12-08 3 views
0

visitas이라는 데이터베이스 테이블에 다음 데이터가 있습니다. 쿼리를 수행하고 싶습니다.이 데이터를 DESC라는 열에 정렬하면 쉽게 처리 할 수 ​​있습니다. visita.내 sql 명령에 무엇이 누락 되었습니까?

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 

나는 최신 visita의 시간과 얼마나 많은 방문에 의해 주문 태블릿을하고 싶지는 결과이 하나

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

것이 시험 테이블에 대해 수행하는 방문의 클라이언트를 가지고 (글쎄요, 시간이 정확하게 3 회 방문에 대해 동일하다는 것을 알고 있습니다. 따라서 결과가 int 일 필요는 없습니다. 어쨌든 내 문제는 이것과 관련이 없습니다.

다음과 같은 SQL 문장이 작동해야합니다. 위를 달성하기 위하여 :

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

그러나이 쿼리는이 결과를 반환 idcliente와 클라이언트 이후에 그 방문을했다 idcliente 6 클라이언트로서 분명히 잘못된

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

을 4

누군가 알아낼 수 내가 누락 될 수 있습니까? 나는 다른 것들을 입력하려고 노력했지만 아무도 작동하지 않는 것 같습니다.

답변

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

MAX 없이는 어떤 visita 값이 정렬에 사용되지 않습니다.

관련 문제