0

次の列を持つ1つのテーブルがあります

id = 例: 1,2,3,4,5,6...

status = 例: Available/Not Available

cityName = eg = アーメダバード

以下のクエリを作成し、必要に応じて出力を得ましたが、別の形式で出力したい

SELECT count(id) as 'Count', status, cityName  FROM table_name
    WHERE cityName like 'Ahmedabad'
    GROUP BY status ;

出力 : -

----------------------
Count|status|cityname
----------------------
100|Available|Ahmeadabad

200|Not Available|Ahmeadabad

私が欲しい出力: -

--------------------------------
Available|Not Available|cityname
--------------------------------
100|200|Ahmeadabad
4

2 に答える 2

1
SELECT
SUM(IF(status = 'Available', 1, 0)) AS `Available`,
SUM(IF(status = 'Not Available', 1, 0)) AS `Not_Available`,
cityName
FROM
table_name
GROUP BY cityName

質問で不明な点があれば質問してください。

または、その単一の都市だけが必要な場合は、GROUP BY を省略できます。

SELECT
SUM(IF(status = 'Available', 1, 0)) AS `Available`,
SUM(IF(status = 'Not Available', 1, 0)) AS `Not_Available`,
cityName
FROM
table_name
WHERE cityName = 'Ahmeadabad'
于 2012-09-07T11:51:23.737 に答える
0

一般的なアプローチは、SUM(CASE WHEN...) を使用することです。

SELECT 
SUM(CASE WHEN Status = 'Available' then 1 else 0 end) AS `Available`, 
SUM(CASE WHEN Status = 'Not Available' then 1, 0 end) AS `Not_Available`, 
cityName 
FROM 
table_name 
GROUP BY cityName 
于 2012-09-07T12:16:25.140 に答える