0
對不起,如果這是一個明顯的問題。我對SQL很陌生,無法根據自己的需要設法調整其他示例。從正則表達式匹配生成直方圖
我有定義爲一個表(Postgres的9.3):
CREATE TABLE scripts (
id SERIAL PRIMARY KEY,
name VARCHAR(256) NOT NULL,
content TEXT NOT NULL);
內容列包含各種腳本的內容。我有興趣計算在這些腳本中發生不同函數調用的次數。
我已經成功地構建運行在內容的正則表達式的查詢,並翻出所有的函數調用(如funcs中)
SELECT id, name, regexp_matches(LOWER(content), '(\w+\.\w+)\(', 'g') AS funcs
FROM scripts
GROUP BY id, name, funcs;
輸出看起來像
1, myscript, {class.m1}<br>
2, otherscript, {class_b.method4}<br>
2, otherscript, {class.m1}<br>
3, last_script, {classname.method2}<br>
3, last_script, {class.m1}<br>
3, last_script, {class_b.method4}<br>
我真的想把它變成一個表格,顯示每個不同功能的計數。像
class.m1, 3
class_b.method4, 2
classname.method2, 1
某事,這是我到目前爲止有:
SELECT COUNT(DISTINCT funcs) FROM (
SELECT tsr_id, name, regexp_matches(LOWER(content), '(\w+\.\w+)\(', 'g') AS funcs
FROM tsr_conf.rules
GROUP BY tsr_id, name, funcs
) x
但不幸的是它只是給我的不同功能的總數。任何關於如何計算每個不同功能的發生的建議將非常感謝!
嗨戈登。非常感謝您的回答!你給出的第一個查詢完美無缺。 再次感謝! – JBeFat