2014-04-10 2 views
0

데이터베이스에 대해 리드를 쿼리하고 있습니다. 리드에는 "리드 생성 날짜"와 가능한 "마감 된"날짜가 있습니다.다차원 목록에서 고유 한 날짜 계산

Google 시각화 API의 경우 [MM/YYYY, 생성 된 리드, 리드가 닫힌] 형식으로 생성 된 리드/리드 마감에 대한 월별 총계를받습니다.

[ 
["09/2011", 2, 1], 
["10/2011", 1, 1], 
["12/2011", 0, 1] 
] 
:

[ 
["09/2011","09/2011"], 
["09/2011","10/2011"], 
["10/2011","12/2011"], 
... 
] 

내가이 구문을 분석하는 효율적인 방법을 마련하고 결과를 얻기 위해 노력하고 붙어 있어요 :

나는 내 쿼리 로직 설정하고 현재와 유사한 AA 결과를 가지고 있습니다

도움이 될 것입니다!

+0

을 당신이 중첩 된 2 년 기간으로 떨어져 시작하는 이유를 이해하지 않기 때문에 나는, 당신이 당신의 모델과 쿼리 논리를 표시해야한다고 생각 요소 목록. 자신을 더 나은 출발점으로 삼으려면이 방법이 더 쉬울 수도 있습니다. ** 편집 ** : 오, 각 레코드에 대한 입력 목록이'[lead_opened, lead_closed]'입니까? –

+0

올바른 경우 입력 목록은 각 레코드에 대해 [lead_opened, lead_closed]로 간주됩니다. 나는 목록을 평평하게하고 유일한 날짜를 얻는 것을 끝내었고, 그 다음 2 개의 목록 (생성되었던 모든 날짜와 닫힌 날짜와 더불어 다른 것) 중의 1 개를 더 만들었다. 그런 다음 날짜를 반복하고 leads_assigned_dates.count (날짜) 등을 수행했습니다. 더 좋은 방법이 있어야합니다. – Erik

답변

2

그것은 그 아름다운 아니지만,이 작업을해야합니다

from collections import defaultdict 

d1 = defaultdict(int) 
d2 = defaultdict(int) 

data = [["09/2011","09/2011"],["09/2011","10/2011"],["10/2011","12/2011"]] 

for d in data: 
    d1[d[0]] += 1 
    d2[d[1]] += 1 

out = [] 
for key in set(d1.keys()) | set(d2.keys()): 
    out.append([key, d1.get(key, 0), d2.get(key, 0)]) 
+0

[collections.defaultdict] (https://docs.python.org/2)를 사용하여 "미화"할 수있었습니다. /library/collections.html#collections.defaultdict)'for' 루프;) –

+1

내 대답을 편집했습니다. 이런 뜻이야? – lukas1994