The $crossjoin in OData v4 may solve your problem, but currently it is not implemented in WebApi. But the OData Unbound Function can meet your requirement, here is an example about it: http://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v4/ODataFunctionSample/FunctionSample/
Say your function name is GetReferencedThings() then you can call it through below url:
~/service-prefix/GetReferencedThings()
In implementation of it, you can leverage the sql script to get the distinct Things and return to the client.