SELECT (SELECT COUNT(DISTINCT(stat_wizyta.wiz_ip)) FROM stat_wizyta WHERE wiz_data = '{$dataa}') AS uniq, (SELECT COUNT(stat_wizyta.id) FROM stat_wizyta WHERE wiz_data = '{$dataa}') AS odslony, (SELECT COUNT(ref_domain) FROM stat_refer WHERE ref_data = '{$dataa}') AS refy, (SELECT COUNT(kwd_data) FROM stat_keyword WHERE kwd_data = '{$dataa}') AS wyszukiwarki, (SELECT COUNT(wib_bot) FROM stat_wizbot WHERE wib_data = '{$dataa}') AS boty
Problem pojawia się w pierwszej lini.
tabel stat_wizyta ma kilka pól w tym:
wiz_ip - ip odwiedzającego
wiz_ser - id serwisu, na którym był gość.
I chodzi o to że DISTINCT sumuje rekordy z całej tabeli, nie biorąc pod uwage serwisu.
np. dla danych
stat_wizyta
wiz_ip | wiz_ser
1 | 1
2 | 1
3 | 1
1 | 2
Chciałbym otrzymać liczbę 4, co prawda IP "1" powtarza się, ale dla różnych serwisów i powinno być zliczone podwójnie, natomiast ja otrzymuję w wyniku 3.