Error-
NoClassDefFoundError: "com.google.common.collect.Sets"
Solution-
Add guava-11.0.2.jar to WEB-INF/lib and add it to the build path.
public class TreeMap extends Visualization<TreeMap.Options>
{
public static class Options extends AbstractDrawOptions {
public static Options create() {
return JavaScriptObject.createObject().cast();
}
protected Options() { }
}
public static final String PACKAGE = "treemap";
public TreeMap() {
super();
}
public TreeMap(AbstractDataTable data, Options options) {
super(data, options);
}
@Override
protected native JavaScriptObject createJso(Element parent) /*-{
return new $wnd.google.visualization.TreeMap(parent);
}-*/;
public final void addOnMouseOverHandler(OnMouseOverHandler handler) {
Handler.addHandler(this, "onmouseover", handler);
}
public final void addOnMouseOutHandler(OnMouseOutHandler handler) {
Handler.addHandler(this, "onmouseout", handler);
}
}
A basic script to loop over an array in psql-
CREATE OR REPLACE FUNCTION func1(n character varying, v character varying)
RETURNS integer AS
$BODY$
DECLARE
return_code integer;
BEGIN
RAISE NOTICE '(%,%)', n, v;
return_code := 1;
RETURN return_code;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN -1;
END;
$BODY$
LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION func2()
RETURNS integer AS
$BODY$
DECLARE
return_code integer;
pairs varchar[][] := array[['key2','val2'],
['key1','val2']];
BEGIN
FOR i IN array_lower(pairs, 1) .. array_upper(pairs, 1)
LOOP
--RAISE NOTICE '%,%',pairs[i][1]::varchar, pairs[i][2]::varchar;
PERFORM func1(pairs[i][1]::varchar, pairs[i][2]::varchar);
END LOOP;
return 1;
END;
$BODY$
LANGUAGE plpgsql;
SELECT * from func2();
SELECT * FROM crosstab( | |
'SELECT rowid, key, value | |
FROM test WHERE key= ''key1'' OR key = ''key2'' | |
OR key = ''key3'' OR key = ''key4'' | |
ORDER BY 1,2') AS | |
ct(rowid text, key1 text, key2 text, | |
key3 text, key4 text); |
date | type | value | |
_________________________ | |
2012-01-01 | 1 | 100 | |
2012-01-01 | 2 | 200 | |
2012-01-02 | 1 | 200 | |
2012-01-02 | 2 | 300 | |
2012-01-03 | 1 | 500 | |
2012-01-03 | 2 | 10 |
METHOD 1(faster): | |
select date, | |
sum(case when type = 1 then value end) Type1, | |
sum(case when type = 2 then value end) Type2 | |
from yourtable | |
group by date | |
METHOD 2: | |
select * from crosstab('select date::text, type::text, | |
value::numeric(16,2) from tableA where | |
type in (1,2) | |
and date between ''2012-02-06'' and ''2013-02-13'' | |
ORDER by 1,2' ) | |
AS ct(date text,type1 numeric(16,2), type2 numeric(16,2)) |