I have this table in MySQL:
I want to group select results by browser and version.
Wanted output:
Array
(
[firefox 3.0] => 2
[chrome 24.0] => 1
[ie 9.0] => 2
[ie 10.0] => 1
)
Question: How to group select to get wanted output?
Note: Table can contain more versions of browsers, so array will expand.
My try:
PHP:
public function get_browsers() {
$query = "
SELECT browser, COUNT(browser) AS num
FROM table
GROUP BY browser
ORDER BY browser ASC
";
$select = mysqli_query($this->c, $query);
while ($row = mysqli_fetch_array($select)) {
$data[$row['browser']] = (int) $row['num'];
}
return $data;
}
Current output:
Array
(
[firefox] => 2
[chrome] => 1
[ie] => 3
)
public function get_browsers() {
$query = '
SELECT browser, version, COUNT(*) AS num
FROM table
GROUP BY browser, version
';
$select = mysqli_query($this->c, $query);
while ($row = mysqli_fetch_array($select)) {
$data[$row['browser'].' '.$row['version']] = (int) $row['num'];
}
return $data;
}
SELECT concat(browser," ", version) as browser, COUNT(browser) AS num
FROM table
GROUP BY browser, version
ORDER BY browser ASC
The trick is to add the version
as group criteria ;)
SELECT browser, CONCAT('browser', 'version') as bv COUNT(browser) AS num
FROM table
GROUP BY bv
ORDER BY browser ASC
";
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.