以下は私がテーブルに持っているものですmyTable
。
+--------+--------+--------+--------+
| value1 | value2 | value3 | value4 |
+--------+--------+--------+--------+
| 9 | 4 | 3 | 3 |
| 1 | 2 | 9 | 3 |
| 1 | 2 | 3 | 4 |
| 1 | 2 | 3 | 4 |
+--------+--------+--------+--------+
として出力したい
+--------+--------+--------+--------+
| value1 | value2 | value3 | value4 |
+--------+--------+--------+--------+
| 1 | 2 | 3 | 4 |
+--------+--------+--------+--------+
value1=1
その列の1は3回だからです。
value2=2
その列の2は3回だからです。
value3=3
その列では3が3回だからです。
value4=4
4はその列の2倍であり、それはその列のすべての共通数の最大数であるためです。
注:value4
最も一般的な値は3と4です。出力では、4が3,4で最大であるため、4を取得する必要があります。
mysqlでこれを達成できますか?
アップデート1
SQLフィドルのテーブル
アップデート2
js-fiddleに進む必要がないように、ここにも回答をリストしています。(@ypercubeの回答による)
SELECT
( SELECT value1
FROM myTable
GROUP BY value1
ORDER BY COUNT(*) DESC
, value1 DESC
LIMIT 1
) AS value1,
( SELECT value2
FROM myTable
GROUP BY value2
ORDER BY COUNT(*) DESC
, value2 DESC
LIMIT 1
) AS value2,
( SELECT value3
FROM myTable
GROUP BY value3
ORDER BY COUNT(*) DESC
, value3 DESC
LIMIT 1
) AS value3,
( SELECT value4
FROM myTable
GROUP BY value4
ORDER BY COUNT(*) DESC
, value4 DESC
LIMIT 1
) AS value4
;