ich eine MySQL-Tabelle mit der folgenden Struktur habenMySQL traspose Tabelle
|user_id|action_type|action_value|timestamp |
|-------|-----------|------------|----------|
|123 |click |search |20-07-2016|
|231 |click |search |20-07-2016|
|123 |click |delete |20-07-2016|
Die Sache ist, action_type können mehrere Werte annehmen, sie Tabellenspalten sein könnte, aber sind dynamisch so entscheiden, ich sie als Werte in ein setzen Spalte, action_value ist der Wert, der einen action_type annehmen kann. Dies sind Aktion pro Nutzer/pro Tag, und ich habe mich gefragt, ob es möglich ist, eine Abfrage zu machen, die die folgenden
|action_type|timestamp |search|delete|
|-----------|----------|------|------|
|click |20-07-2016|2 |1 |
|-----------|----------|------|------|
für eine gegebene action_type zurück, kehren alle Benutzer, die diese Aktion und Gruppe durch Zeitstempel führen.
Ich habe versucht, die folgende Abfrage, aber ich bin nur die gleiche Zahl immer in beiden Spalten
SELECT T1.action_type, DATE(T1.timestamp), count(T1.action_value) 'search', count(T2.action_value) 'delete' FROM cohort_actions T1 INNER JOIN (SELECT timestamp, action_value FROM cohort_actions WHERE action_value = 'delete') T2 ON DATE(T1.timestamp) = DATE(T2.timestamp) WHERE T1.action_type = 'click' AND T1.action_value = 'search' GROUP BY DATE(T1.timestamp);