index=ABC sourcetype=xyz | stats count by XID| table XID count
index=ABC sourcetype=pqr | table MyID Name
How to join this to get result.
MyID Name count
101 jhgkjmhgku 2
102 jhkfythhgkk 3
103 kiugikyukhy 4
I always try to avoid commands that use subsearches since they don't scale.
You should be able to get the job done with this:
index=ABC (sourcetype=xyz OR sourcetype=pqr) | eval joinid=coalesce(XID,MyID) | stats count(XID) AS Count, values(Name) AS Name by joinid | rename joinid AS MyID
This takes some extra steps for clarity, but the gist is that you are using the "by" field in the stats to perform the "join". The count will be constrained to only events with an XID field, meaning that your
sourcetype=pqr events won't influence your count, even though they are in the resultset.
index=ABC sourcetype=xyz OR sourcetype=pqr | eval MyID = coalesce(MyID,XID) | stats count(eval(sourcetype=xyz)) as count, values(Name) as Name by MyID